9 #define OPENIMAGEIO_IMAGEBUFALGO_H
14 # pragma warning (disable : 4251)
25 #if !defined(__OPENCV_CORE_TYPES_H__) && !defined(OPENCV_CORE_TYPES_H)
169 bool is_img ()
const {
return m_type == IMG; }
170 bool is_val ()
const {
return m_type == VAL; }
182 enum Contents { NONE, VAL, IMG };
191 namespace ImageBufAlgo {
221 ROI roi,
int nthreads=0);
224 ROI roi,
int nthreads=0);
226 ROI roi={},
int nthreads=0);
228 ROI roi={},
int nthreads=0);
231 ROI roi={},
int nthreads=0);
243 ROI roi,
int nthreads=0);
248 ROI roi={},
int nthreads=0);
277 float A = 0.0
f,
float B = 0.1
f,
bool mono =
false,
278 int seed = 0,
ROI roi={},
int nthreads=0);
281 float A = 0.0
f,
float B = 0.1
f,
bool mono =
false,
282 int seed = 0,
ROI roi={},
int nthreads=0);
297 ROI roi={},
int nthreads=0);
309 bool skip_first_point =
false,
310 ROI roi={},
int nthreads=0);
321 ROI roi={},
int nthreads=0);
378 int shadow = 0,
ROI roi={},
int nthreads=0);
432 bool shuffle_channel_names=
false,
int nthreads=0);
438 bool shuffle_channel_names=
false,
int nthreads=0);
447 ROI roi={},
int nthreads=0);
457 ROI roi={},
int nthreads=0);
462 ROI roi={},
int nthreads=0);
499 int zbegin,
int chbegin,
const ImageBuf &src,
500 ROI srcroi={},
int nthreads=0);
519 ROI roi={},
int nthreads=0);
521 ROI roi={},
int nthreads=0);
523 ROI roi={},
int nthreads=0);
545 ROI roi={},
int nthreads=0);
547 ROI roi={},
int nthreads=0);
549 ROI roi={},
int nthreads=0);
566 int xshift,
int yshift,
int zshift=0,
567 ROI roi={},
int nthreads=0);
570 int xshift,
int yshift,
int zshift=0,
571 ROI roi={},
int nthreads=0);
601 float filterwidth = 0.0
f,
bool recompute_roi =
false,
602 ROI roi={},
int nthreads=0);
605 ROI roi={},
int nthreads=0);
607 float angle,
float center_x,
float center_y,
609 float filterwidth = 0.0
f,
bool recompute_roi =
false,
610 ROI roi={},
int nthreads=0);
612 float angle,
float center_x,
float center_y,
613 Filter2D *filter,
bool recompute_roi =
false,
614 ROI roi={},
int nthreads=0);
617 float filterwidth = 0.0
f,
bool recompute_roi =
false,
618 ROI roi={},
int nthreads=0);
620 Filter2D *filter,
bool recompute_roi =
false,
621 ROI roi={},
int nthreads=0);
623 float angle,
float center_x,
float center_y,
625 float filterwidth = 0.0
f,
bool recompute_roi =
false,
626 ROI roi={},
int nthreads=0);
628 float angle,
float center_x,
float center_y,
629 Filter2D *filter,
bool recompute_roi =
false,
630 ROI roi={},
int nthreads=0);
652 ROI roi={},
int nthreads=0);
654 ROI roi={},
int nthreads=0);
657 ROI roi={},
int nthreads=0);
659 ROI roi={},
int nthreads=0);
679 ROI roi={},
int nthreads=0);
682 bool interpolate =
true,
ROI roi={},
int nthreads=0);
723 string_view fillmode=
"letterbox",
bool exact=
false,
724 ROI roi={},
int nthreads=0);
726 string_view fillmode=
"letterbox",
bool exact=
false,
727 ROI roi={},
int nthreads=0);
730 string_view fillmode=
"letterbox",
bool exact=
false,
731 ROI roi={},
int nthreads=0);
733 string_view fillmode=
"letterbox",
bool exact=
false,
734 ROI roi={},
int nthreads=0);
736 #ifndef DOXYGEN_SHOULD_SKIP_THIS
740 bool exact,
ROI roi={},
int nthreads=0);
742 bool exact,
ROI roi={},
int nthreads=0);
745 bool exact,
ROI roi={},
int nthreads=0);
747 bool exact,
ROI roi={},
int nthreads=0);
773 float filterwidth = 0.0
f,
bool recompute_roi =
false,
775 ROI roi={},
int nthreads=0);
777 const Filter2D *filter,
bool recompute_roi =
false,
779 ROI roi = {},
int nthreads=0);
782 float filterwidth = 0.0
f,
bool recompute_roi =
false,
784 ROI roi={},
int nthreads=0);
786 const Filter2D *filter,
bool recompute_roi =
false,
788 ROI roi = {},
int nthreads=0);
798 ROI roi={},
int nthreads=0);
801 ROI roi={},
int nthreads=0);
810 ROI roi={},
int nthreads=0);
813 ROI roi={},
int nthreads=0);
823 ROI roi={},
int nthreads=0);
826 ROI roi={},
int nthreads=0);
841 ROI roi={},
int nthreads=0);
844 ROI roi={},
int nthreads=0);
854 ROI roi={},
int nthreads=0);
857 ROI roi={},
int nthreads=0);
897 ROI roi={},
int nthreads=0);
900 ROI roi={},
int nthreads=0);
909 bool z_zeroisinf=
false,
ROI roi={},
int nthreads=0);
912 bool z_zeroisinf=
false,
ROI roi={},
int nthreads=0);
936 ROI roi={},
int nthreads=0);
939 ROI roi={},
int nthreads=0);
950 ROI roi={},
int nthreads=0);
954 ROI roi={},
int nthreads=0);
973 ROI roi={},
int nthreads=0);
976 ROI roi={},
int nthreads=0);
984 ROI roi={},
int nthreads=0);
987 ROI roi={},
int nthreads=0);
1004 bool clampalpha01 =
false,
ROI roi={},
int nthreads=0);
1009 bool clampalpha01 =
false,
ROI roi={},
int nthreads=0);
1025 ROI roi={},
int nthreads=0);
1029 ROI roi={},
int nthreads=0);
1067 ROI={},
int nthreads=0);
1073 ROI={},
int nthreads=0);
1099 int firstchannel = 0,
ROI roi={},
int nthreads=0);
1101 int firstchannel = 0,
ROI roi={},
int nthreads=0);
1139 ROI roi={},
int nthreads=0);
1144 ROI roi={},
int nthreads=0);
1178 ROI roi={},
int nthreads=0);
1180 ROI roi={},
int nthreads=0);
1182 bool useluma =
false,
ROI roi={},
int nthreads=0);
1184 bool useluma =
false,
ROI roi={},
int nthreads=0);
1201 void reset (
int nchannels);
1212 ROI roi={},
int nthreads=0);
1216 #ifndef DOXYGEN_SHOULD_SKIP_THIS
1219 ROI roi={},
int nthreads=0);
1244 float failthresh,
float warnthresh,
1245 ROI roi={},
int nthreads=0);
1264 float luminance = 100,
float fov = 45,
1265 ROI roi={},
int nthreads=0);
1267 #ifndef DOXYGEN_SHOULD_SKIP_THIS
1272 float failthresh,
float warnthresh,
1273 CompareResults &result,
ROI roi={},
int nthreads=0);
1285 ROI roi={},
int nthreads=0);
1286 #ifndef DOXYGEN_SHOULD_SKIP_THIS
1288 ROI roi={},
int nthreads=0) {
1300 float val,
float threshold=0.0
f,
1301 ROI roi={},
int nthreads=0);
1302 #ifndef DOXYGEN_SHOULD_SKIP_THIS
1304 ROI roi,
int nthreads=0) {
1316 ROI roi={},
int nthreads=0);
1317 #ifndef DOXYGEN_SHOULD_SKIP_THIS
1348 ROI roi={},
int nthreads=0);
1368 ROI roi={},
int nthreads=0);
1394 int blocksize = 0,
int nthreads=0);
1408 int bins=256,
float min=0.0
f,
float max=1.0
f,
1409 bool ignore_empty=
false,
1410 ROI roi={},
int nthreads=0);
1413 #ifndef DOXYGEN_SHOULD_SKIP_THIS
1450 #ifndef DOXYGEN_SHOULD_SKIP_THIS
1454 float width,
float height,
float depth = 1.0
f,
1457 return ! dst.has_error();
1491 ROI roi={},
int nthreads=0);
1558 ROI roi={},
int nthreads=0);
1560 ROI roi={},
int nthreads=0);
1562 ROI roi={},
int nthreads=0);
1564 ROI roi={},
int nthreads=0);
1594 int *pixelsFixed =
nullptr,
1595 ROI roi={},
int nthreads=0);
1600 int *pixelsFixed =
nullptr,
1601 ROI roi={},
int nthreads=0);
1611 ROI roi={},
int nthreads=0);
1614 ROI roi={},
int nthreads=0);
1626 int width = 3,
int height = -1,
1627 ROI roi={},
int nthreads=0);
1630 int width = 3,
int height = -1,
1631 ROI roi={},
int nthreads=0);
1656 float contrast = 1.0
f,
float threshold = 0.0
f,
1657 ROI roi={},
int nthreads=0);
1661 float contrast = 1.0
f,
float threshold = 0.0
f,
1662 ROI roi={},
int nthreads=0);
1672 ROI roi={},
int nthreads=0);
1675 int width=3,
int height=-1,
ROI roi={},
int nthreads=0);
1685 ROI roi={},
int nthreads=0);
1688 int width=3,
int height=-1,
ROI roi={},
int nthreads=0);
1744 ROI roi={},
int nthreads=0);
1755 ROI roi={},
int nthreads=0);
1760 bool unpremult,
ROI roi={},
int nthreads=0);
1801 ROI roi={},
int nthreads=0);
1805 ROI roi={},
int nthreads=0);
1841 bool unpremult=
true,
bool inverse=
false,
1844 ROI roi={},
int nthreads=0);
1848 bool unpremult=
true,
bool inverse=
false,
1851 ROI roi={},
int nthreads=0);
1898 bool unpremult=
true,
1901 ROI roi={},
int nthreads=0);
1906 bool unpremult=
true,
1909 ROI roi={},
int nthreads=0);
1937 bool unpremult=
true,
bool inverse=
false,
1939 ROI roi={},
int nthreads=0);
1943 bool unpremult=
true,
bool inverse=
false,
1945 ROI roi={},
int nthreads=0);
1980 ROI roi={},
int nthreads=0);
1983 ROI roi={},
int nthreads=0);
1986 ROI roi={},
int nthreads=0);
2203 std::ostream *outstream =
nullptr);
2211 std::ostream *outstream =
nullptr);
2216 const std::vector<std::string> &filenames,
2219 std::ostream *outstream =
nullptr);
2232 ROI roi={},
int nthreads=0);
2240 ROI roi={},
int nthreads=0);
2252 #ifndef DOXYGEN_SHOULD_SKIP_THIS
2258 return !dst.has_error();
2260 #endif // DOXYGEN_SHOULD_SKIP_THIS
2263 #if defined(__OPENCV_CORE_TYPES_H__) || defined(OPENCV_CORE_TYPES_H)
2267 #ifndef DOXYGEN_SHOULD_SKIP_THIS
2274 inline
bool from_IplImage (
ImageBuf &dst, const IplImage *ipl,
2276 dst = from_IplImage (ipl,
convert);
2277 return ! dst.has_error();
2284 #endif // DOXYGEN_SHOULD_SKIP_THIS
2309 ROI roi={},
int nthreads=0);
2312 ROI roi={},
int nthreads=0);
2324 ROI roi={},
int nthreads=0);
2332 bool occlusion_cull =
true,
2333 ROI roi={},
int nthreads=0);
2336 const ImageBuf &B,
bool occlusion_cull =
true,
2337 ROI roi={},
int nthreads=0);
2347 ROI roi={},
int nthreads=0);
2351 ROI roi={},
int nthreads=0);
2361 #ifndef DOXYGEN_SHOULD_SKIP_THIS
2364 ROI roi={},
int nthreads=0) {
2365 int nc (roi.defined() ? roi.nchannels() : dst.
nchannels());
2366 return fill (dst, {
values, nc}, roi, nthreads);
2369 ROI roi={},
int nthreads=0) {
2370 int nc (roi.defined() ? roi.nchannels() : dst.
nchannels());
2373 inline bool fill (
ImageBuf &dst,
const float *topleft,
const float *topright,
2374 const float *bottomleft,
const float *bottomright,
2375 ROI roi={},
int nthreads=0) {
2376 int nc (roi.defined() ? roi.nchannels() : dst.
nchannels());
2377 return fill (dst, {topleft, nc}, {topright, nc}, {bottomleft, nc},
2378 {bottomright, nc}, roi, nthreads);
2382 const float *color1,
const float *color2,
2384 ROI roi={},
int nthreads=0) {
2385 int nc (roi.defined() ? roi.nchannels() : dst.
nchannels());
2386 return checker (dst, width, height, depth, {color1,nc}, {color2,nc},
2391 ROI roi={},
int nthreads=0) {
2395 ROI roi={},
int nthreads=0) {
2399 ROI roi={},
int nthreads=0) {
2403 ROI roi={},
int nthreads=0) {
2407 ROI roi={},
int nthreads=0) {
2415 const float *C,
ROI roi={},
int nthreads=0) {
2416 return mad (dst, A, C, B, roi, nthreads);
2419 const float *C,
ROI roi={},
int nthreads=0) {
2424 ROI roi={},
int nthreads=0) {
2429 const float *weights=
nullptr,
ROI roi={},
2436 int nchannels,
const int *channelorder,
2437 const float *channelvalues=
nullptr,
2439 bool shuffle_channel_names=
false,
int nthreads=0) {
2440 return channels (dst, src, nchannels,
2441 { channelorder, channelorder?nchannels:0 },
2442 { channelvalues, channelvalues?nchannels:0 },
2443 { newchannelnames, newchannelnames?nchannels:0},
2444 shuffle_channel_names, nthreads);
2448 const float *
min=
nullptr,
const float *
max=
nullptr,
2449 bool clampalpha01 =
false,
2450 ROI roi={},
int nthreads=0) {
2457 ROI roi={},
int nthreads=0) {
2463 int ncolors,
const float *color,
2464 const float *eps=
nullptr,
2465 ROI roi={},
int nthreads=0) {
2474 const float *low,
const float *high,
2475 ROI roi={},
int nthreads=0) {
2483 const float *textcolor) {
2484 return render_text (dst, x, y, text, fontsize, fontname,
2485 {textcolor, textcolor?dst.
nchannels():0});
2488 #endif // DOXYGEN_SHOULD_SKIP_THIS
OIIO_API std::vector< imagesize_t > histogram(const ImageBuf &src, int channel=0, int bins=256, float min=0.0f, float max=1.0f, bool ignore_empty=false, ROI roi={}, int nthreads=0)
bool OIIO_API paste(ImageBuf &dst, int xbegin, int ybegin, int zbegin, int chbegin, const ImageBuf &src, ROI srcroi={}, int nthreads=0)
std::vector< double > sum2
ImageBuf OIIO_API fill(cspan< float > values, ROI roi, int nthreads=0)
bool OIIO_API render_point(ImageBuf &dst, int x, int y, cspan< float > color=1.0f, ROI roi={}, int nthreads=0)
GLint GLint GLint yoffset
GT_API const UT_StringHolder filename
ImageBuf OIIO_API ifft(const ImageBuf &src, ROI roi={}, int nthreads=0)
bool OIIO_API color_count(const ImageBuf &src, imagesize_t *count, int ncolors, cspan< float > color, cspan< float > eps=0.001f, ROI roi={}, int nthreads=0)
const ImageBuf & img() const
Matrix44< float > M44f
4x4 matrix of float
ImageBuf OIIO_API copy(const ImageBuf &src, TypeDesc convert=TypeUnknown, ROI roi={}, int nthreads=0)
ImageBuf OIIO_API complex_to_polar(const ImageBuf &src, ROI roi={}, int nthreads=0)
SIM_API const UT_StringHolder angle
bool OIIO_API max(ImageBuf &dst, Image_or_Const A, Image_or_Const B, ROI roi={}, int nthreads=0)
Write to an existing image dst (allocating if it is uninitialized).
void swap(UT::ArraySet< Key, MULTI, MAX_LOAD_FACTOR_256, Clearer, Hash, KeyEqual > &a, UT::ArraySet< Key, MULTI, MAX_LOAD_FACTOR_256, Clearer, Hash, KeyEqual > &b)
Encapsulation of options that control parallel_image().
GLsizei const GLchar *const * string
ImageBuf OIIO_API ociolook(const ImageBuf &src, string_view looks, string_view fromspace, string_view tospace, bool unpremult=true, bool inverse=false, string_view context_key="", string_view context_value="", ColorConfig *colorconfig=nullptr, ROI roi={}, int nthreads=0)
std::string OIIO_API computePixelHashSHA1(const ImageBuf &src, string_view extrainfo="", ROI roi={}, int blocksize=0, int nthreads=0)
OIIO_API bool isMonochrome(const ImageBuf &src, float threshold=0.0f, ROI roi={}, int nthreads=0)
ImageBuf OIIO_API channel_append(const ImageBuf &A, const ImageBuf &B, ROI roi={}, int nthreads=0)
std::vector< imagesize_t > infcount
ImageBuf OIIO_API mad(Image_or_Const A, Image_or_Const B, Image_or_Const C, ROI roi={}, int nthreads=0)
ImageBuf OIIO_API abs(const ImageBuf &A, ROI roi={}, int nthreads=0)
Compute per-pixel absolute value abs(A), returning the result image.
bool OIIO_API render_box(ImageBuf &dst, int x1, int y1, int x2, int y2, cspan< float > color=1.0f, bool fill=false, ROI roi={}, int nthreads=0)
Image_or_Const(const std::vector< float > &val)
ImageBuf OIIO_API reorient(const ImageBuf &src, int nthreads=0)
ImageBuf OIIO_API min(Image_or_Const A, Image_or_Const B, ROI roi={}, int nthreads=0)
Tto convert(const Tfrom &source)
ImageBuf OIIO_API checker(int width, int height, int depth, cspan< float > color1, cspan< float > color2, int xoffset, int yoffset, int zoffset, ROI roi, int nthreads=0)
ImageBuf OIIO_API flatten(const ImageBuf &src, ROI roi={}, int nthreads=0)
**But if you need a result
OIIO_API bool to_OpenCV(cv::Mat &dst, const ImageBuf &src, ROI roi={}, int nthreads=0)
std::vector< imagesize_t > finitecount
ImageBuf OIIO_API rotate270(const ImageBuf &src, ROI roi={}, int nthreads=0)
Matrix33< float > M33f
3x3 matrix of float
ImageBuf OIIO_API rangecompress(const ImageBuf &src, bool useluma=false, ROI roi={}, int nthreads=0)
basic_string_view< char > string_view
std::vector< float > stddev
ImageBuf OIIO_API transpose(const ImageBuf &src, ROI roi={}, int nthreads=0)
OIIO_API ImageBuf from_OpenCV(const cv::Mat &mat, TypeDesc convert=TypeUnknown, ROI roi={}, int nthreads=0)
ImageBuf OIIO_API laplacian(const ImageBuf &src, ROI roi={}, int nthreads=0)
ImageBuf OIIO_API pow(const ImageBuf &A, cspan< float > B, ROI roi={}, int nthreads=0)
const ImageBuf * imgptr() const
ImageBuf OIIO_API clamp(const ImageBuf &src, cspan< float > min=-std::numeric_limits< float >::max(), cspan< float > max=std::numeric_limits< float >::max(), bool clampalpha01=false, ROI roi={}, int nthreads=0)
ImageBuf OIIO_API fixNonFinite(const ImageBuf &src, NonFiniteFixMode mode=NONFINITE_BOX3, int *pixelsFixed=nullptr, ROI roi={}, int nthreads=0)
GA_API const UT_StringHolder scale
CompareResults OIIO_API compare(const ImageBuf &A, const ImageBuf &B, float failthresh, float warnthresh, ROI roi={}, int nthreads=0)
ImageBuf OIIO_API polar_to_complex(const ImageBuf &src, ROI roi={}, int nthreads=0)
GLint GLsizei GLsizei height
ImageBuf OIIO_API fit(const ImageBuf &src, string_view filtername="", float filterwidth=0.0f, string_view fillmode="letterbox", bool exact=false, ROI roi={}, int nthreads=0)
ImageBuf OIIO_API fillholes_pushpull(const ImageBuf &src, ROI roi={}, int nthreads=0)
ImageBuf OIIO_API flop(const ImageBuf &src, ROI roi={}, int nthreads=0)
ImageBuf OIIO_API sub(Image_or_Const A, Image_or_Const B, ROI roi={}, int nthreads=0)
PixelStats(int nchannels)
ImageBuf OIIO_API make_kernel(string_view name, float width, float height, float depth=1.0f, bool normalize=true)
ImageBuf OIIO_API deep_merge(const ImageBuf &A, const ImageBuf &B, bool occlusion_cull=true, ROI roi={}, int nthreads=0)
ImageBuf OIIO_API ociodisplay(const ImageBuf &src, string_view display, string_view view, string_view fromspace="", string_view looks="", bool unpremult=true, string_view context_key="", string_view context_value="", ColorConfig *colorconfig=nullptr, ROI roi={}, int nthreads=0)
ImageBuf OIIO_API deepen(const ImageBuf &src, float zvalue=1.0f, ROI roi={}, int nthreads=0)
ImageBuf OIIO_API premult(const ImageBuf &src, ROI roi={}, int nthreads=0)
ImageBuf OIIO_API dilate(const ImageBuf &src, int width=3, int height=-1, ROI roi={}, int nthreads=0)
ROI OIIO_API text_size(string_view text, int fontsize=16, string_view fontname="")
ImageBuf OIIO_API rotate180(const ImageBuf &src, ROI roi={}, int nthreads=0)
ImageBuf OIIO_API erode(const ImageBuf &src, int width=3, int height=-1, ROI roi={}, int nthreads=0)
ImageBuf OIIO_API invert(const ImageBuf &A, ROI roi={}, int nthreads=0)
cspan< float > val() const
ImageBuf OIIO_API maxchan(const ImageBuf &A, ROI roi={}, int nthreads=0)
ImageBuf OIIO_API color_map(const ImageBuf &src, int srcchannel, int nknots, int channels, cspan< float > knots, ROI roi={}, int nthreads=0)
ImageBuf OIIO_API circular_shift(const ImageBuf &src, int xshift, int yshift, int zshift=0, ROI roi={}, int nthreads=0)
ImageBuf OIIO_API over(const ImageBuf &A, const ImageBuf &B, ROI roi={}, int nthreads=0)
OIIO_API ImageBuf contrast_remap(const ImageBuf &src, cspan< float > black=0.0f, cspan< float > white=1.0f, cspan< float > min=0.0f, cspan< float > max=1.0f, cspan< float > scontrast=1.0f, cspan< float > sthresh=0.5f, ROI={}, int nthreads=0)
ImageBuf OIIO_API ociofiletransform(const ImageBuf &src, string_view name, bool unpremult=true, bool inverse=false, ColorConfig *colorconfig=nullptr, ROI roi={}, int nthreads=0)
std::vector< imagesize_t > nancount
void swap(Image_or_Const &other)
ImageBuf OIIO_API saturate(const ImageBuf &src, float scale=0.0f, int firstchannel=0, ROI roi={}, int nthreads=0)
GLuint const GLchar * name
Image_or_Const(const float &val)
ImageBuf OIIO_API fft(const ImageBuf &src, ROI roi={}, int nthreads=0)
ImageBuf OIIO_API repremult(const ImageBuf &src, ROI roi={}, int nthreads=0)
ImageBuf OIIO_API rotate(const ImageBuf &src, float angle, string_view filtername=string_view(), float filterwidth=0.0f, bool recompute_roi=false, ROI roi={}, int nthreads=0)
Image_or_Const(const ImageBuf &img)
ImageBuf OIIO_API div(Image_or_Const A, Image_or_Const B, ROI roi={}, int nthreads=0)
bool OIIO_API make_texture(MakeTextureMode mode, const ImageBuf &input, string_view outputfilename, const ImageSpec &config, std::ostream *outstream=nullptr)
Version of make_texture that starts with an ImageBuf.
ImageBuf OIIO_API capture_image(int cameranum=0, TypeDesc convert=TypeUnknown)
GLint GLint GLsizei GLsizei GLsizei depth
Image_or_Const(const ImageBuf *img)
ImageBuf OIIO_API noise(string_view noisetype, float A=0.0f, float B=0.1f, bool mono=false, int seed=0, ROI roi={}, int nthreads=0)
ImageBuf OIIO_API flip(const ImageBuf &src, ROI roi={}, int nthreads=0)
ImageBuf OIIO_API unpremult(const ImageBuf &src, ROI roi={}, int nthreads=0)
bool OIIO_API min(ImageBuf &dst, Image_or_Const A, Image_or_Const B, ROI roi={}, int nthreads=0)
Write to an existing image dst (allocating if it is uninitialized).
bool OIIO_API render_line(ImageBuf &dst, int x1, int y1, int x2, int y2, cspan< float > color=1.0f, bool skip_first_point=false, ROI roi={}, int nthreads=0)
ImageBuf OIIO_API cut(const ImageBuf &src, ROI roi={}, int nthreads=0)
OIIO_API const ImageBuf & bluenoise_image()
OIIO_API bool isConstantColor(const ImageBuf &src, float threshold=0.0f, span< float > color={}, ROI roi={}, int nthreads=0)
ImageBuf OIIO_API resize(const ImageBuf &src, string_view filtername="", float filterwidth=0.0f, ROI roi={}, int nthreads=0)
int OIIO_API compare_Yee(const ImageBuf &A, const ImageBuf &B, CompareResults &result, float luminance=100, float fov=45, ROI roi={}, int nthreads=0)
ImageBuf OIIO_API colormatrixtransform(const ImageBuf &src, const Imath::M44f &M, bool unpremult=true, ROI roi={}, int nthreads=0)
ImageBuf OIIO_API rotate90(const ImageBuf &src, ROI roi={}, int nthreads=0)
GLenum GLsizei GLsizei GLint * values
Replace non-finite values with 0.0.
ImageBuf OIIO_API median_filter(const ImageBuf &src, int width=3, int height=-1, ROI roi={}, int nthreads=0)
ImageBuf OIIO_API absdiff(Image_or_Const A, Image_or_Const B, ROI roi={}, int nthreads=0)
LeafData & operator=(const LeafData &)=delete
bool OIIO_API render_text(ImageBuf &dst, int x, int y, string_view text, int fontsize=16, string_view fontname="", cspan< float > textcolor=1.0f, TextAlignX alignx=TextAlignX::Left, TextAlignY aligny=TextAlignY::Baseline, int shadow=0, ROI roi={}, int nthreads=0)
ImageBuf OIIO_API max(Image_or_Const A, Image_or_Const B, ROI roi={}, int nthreads=0)
ImageBuf OIIO_API colorconvert(const ImageBuf &src, string_view fromspace, string_view tospace, bool unpremult=true, string_view context_key="", string_view context_value="", ColorConfig *colorconfig=nullptr, ROI roi={}, int nthreads=0)
Transform between named color spaces, returning an ImageBuf result.
Image_or_Const(const float *v, size_t s)
ImageBuf OIIO_API channel_sum(const ImageBuf &src, cspan< float > weights=1.0f, ROI roi={}, int nthreads=0)
ImageBuf OIIO_API rangeexpand(const ImageBuf &src, bool useluma=false, ROI roi={}, int nthreads=0)
GLdouble GLdouble GLdouble top
ImageBuf OIIO_API unsharp_mask(const ImageBuf &src, string_view kernel="gaussian", float width=3.0f, float contrast=1.0f, float threshold=0.0f, ROI roi={}, int nthreads=0)
OIIO_API ROI nonzero_region(const ImageBuf &src, ROI roi={}, int nthreads=0)
ImageBuf OIIO_API warp(const ImageBuf &src, const Imath::M33f &M, string_view filtername=string_view(), float filterwidth=0.0f, bool recompute_roi=false, ImageBuf::WrapMode wrap=ImageBuf::WrapDefault, ROI roi={}, int nthreads=0)
ImageBuf OIIO_API add(Image_or_Const A, Image_or_Const B, ROI roi={}, int nthreads=0)
Image_or_Const(const float *v, int s)
#define OIIO_NAMESPACE_END
ImageBuf OIIO_API deep_holdout(const ImageBuf &src, const ImageBuf &holdout, ROI roi={}, int nthreads=0)
GLdouble GLdouble GLdouble y2
ImageBuf OIIO_API crop(const ImageBuf &src, ROI roi={}, int nthreads=0)
bool OIIO_API histogram_draw(ImageBuf &dst, const std::vector< imagesize_t > &histogram)
ImageBuf OIIO_API resample(const ImageBuf &src, bool interpolate=true, ROI roi={}, int nthreads=0)
ImageBuf OIIO_API zero(ROI roi, int nthreads=0)
ImageBuf OIIO_API convolve(const ImageBuf &src, const ImageBuf &kernel, bool normalize=true, ROI roi={}, int nthreads=0)
ImageBuf OIIO_API minchan(const ImageBuf &src, ROI roi={}, int nthreads=0)
Image_or_Const(cspan< float > val)
ImageBuf OIIO_API zover(const ImageBuf &A, const ImageBuf &B, bool z_zeroisinf=false, ROI roi={}, int nthreads=0)
GLint GLint GLint GLint zoffset
PixelStats OIIO_API computePixelStats(const ImageBuf &src, ROI roi={}, int nthreads=0)
constexpr T normalize(UT_FixedVector< T, D > &a) noexcept
bool OIIO_API color_range_check(const ImageBuf &src, imagesize_t *lowcount, imagesize_t *highcount, imagesize_t *inrangecount, cspan< float > low, cspan< float > high, ROI roi={}, int nthreads=0)
OIIO_API bool isConstantChannel(const ImageBuf &src, int channel, float val, float threshold=0.0f, ROI roi={}, int nthreads=0)
ImageBuf OIIO_API channels(const ImageBuf &src, int nchannels, cspan< int > channelorder, cspan< float > channelvalues={}, cspan< std::string > newchannelnames={}, bool shuffle_channel_names=false, int nthreads=0)
Image_or_Const(std::initializer_list< const float > val)
#define OIIO_NAMESPACE_BEGIN
ImageBuf OIIO_API mul(Image_or_Const A, Image_or_Const B, ROI roi={}, int nthreads=0)
GLint GLint GLint GLint GLint GLint GLint GLbitfield GLenum filter