9 #define OPENIMAGEIO_IMAGEBUFALGO_H
14 # pragma warning (disable : 4251)
26 #if !defined(__OPENCV_CORE_TYPES_H__) && !defined(OPENCV_CORE_TYPES_H)
173 bool is_img ()
const {
return m_type == IMG; }
174 bool is_val ()
const {
return m_type == VAL; }
186 enum Contents { NONE, VAL, IMG };
195 namespace ImageBufAlgo {
225 ROI roi,
int nthreads=0);
228 ROI roi,
int nthreads=0);
230 ROI roi={},
int nthreads=0);
232 ROI roi={},
int nthreads=0);
235 ROI roi={},
int nthreads=0);
247 ROI roi,
int nthreads=0);
252 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);
285 float A = 0.0
f,
float B = 0.1
f,
bool mono =
false,
286 int seed = 0,
ROI roi={},
int nthreads=0);
301 ROI roi={},
int nthreads=0);
313 bool skip_first_point =
false,
314 ROI roi={},
int nthreads=0);
325 ROI roi={},
int nthreads=0);
382 int shadow = 0,
ROI roi={},
int nthreads=0);
436 bool shuffle_channel_names=
false,
int nthreads=0);
442 bool shuffle_channel_names=
false,
int nthreads=0);
451 ROI roi={},
int nthreads=0);
461 ROI roi={},
int nthreads=0);
466 ROI roi={},
int nthreads=0);
503 int zbegin,
int chbegin,
const ImageBuf &src,
504 ROI srcroi={},
int nthreads=0);
523 ROI roi={},
int nthreads=0);
525 ROI roi={},
int nthreads=0);
527 ROI roi={},
int nthreads=0);
549 ROI roi={},
int nthreads=0);
551 ROI roi={},
int nthreads=0);
553 ROI roi={},
int nthreads=0);
570 int xshift,
int yshift,
int zshift=0,
571 ROI roi={},
int nthreads=0);
574 int xshift,
int yshift,
int zshift=0,
575 ROI roi={},
int nthreads=0);
605 float filterwidth = 0.0
f,
bool recompute_roi =
false,
606 ROI roi={},
int nthreads=0);
609 ROI roi={},
int nthreads=0);
611 float angle,
float center_x,
float center_y,
613 float filterwidth = 0.0
f,
bool recompute_roi =
false,
614 ROI roi={},
int nthreads=0);
616 float angle,
float center_x,
float center_y,
617 Filter2D *filter,
bool recompute_roi =
false,
618 ROI roi={},
int nthreads=0);
621 float filterwidth = 0.0
f,
bool recompute_roi =
false,
622 ROI roi={},
int nthreads=0);
624 Filter2D *filter,
bool recompute_roi =
false,
625 ROI roi={},
int nthreads=0);
627 float angle,
float center_x,
float center_y,
629 float filterwidth = 0.0
f,
bool recompute_roi =
false,
630 ROI roi={},
int nthreads=0);
632 float angle,
float center_x,
float center_y,
633 Filter2D *filter,
bool recompute_roi =
false,
634 ROI roi={},
int nthreads=0);
656 ROI roi={},
int nthreads=0);
658 ROI roi={},
int nthreads=0);
661 ROI roi={},
int nthreads=0);
663 ROI roi={},
int nthreads=0);
686 ROI roi={},
int nthreads=0);
689 bool interpolate =
true,
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);
737 string_view fillmode=
"letterbox",
bool exact=
false,
738 ROI roi={},
int nthreads=0);
740 string_view fillmode=
"letterbox",
bool exact=
false,
741 ROI roi={},
int nthreads=0);
743 #ifndef DOXYGEN_SHOULD_SKIP_THIS
747 bool exact,
ROI roi={},
int nthreads=0);
749 bool exact,
ROI roi={},
int nthreads=0);
752 bool exact,
ROI roi={},
int nthreads=0);
754 bool exact,
ROI roi={},
int nthreads=0);
780 float filterwidth = 0.0
f,
bool recompute_roi =
false,
782 ROI roi={},
int nthreads=0);
784 const Filter2D *filter,
bool recompute_roi =
false,
786 ROI roi = {},
int nthreads=0);
789 float filterwidth = 0.0
f,
bool recompute_roi =
false,
791 ROI roi={},
int nthreads=0);
793 const Filter2D *filter,
bool recompute_roi =
false,
795 ROI roi = {},
int nthreads=0);
800 float filterwidth,
bool recompute_roi,
802 ROI roi={},
int nthreads=0);
804 const Filter2D *filter,
bool recompute_roi,
806 ROI roi = {},
int nthreads=0);
809 float filterwidth,
bool recompute_roi,
811 ROI roi={},
int nthreads=0);
813 const Filter2D *filter,
bool recompute_roi,
815 ROI roi = {},
int nthreads=0);
816 #endif // OIIO_INTERNAL
862 float filterwidth=0.0
f,
int chan_s=0,
int chan_t=1,
863 bool flip_s=
false,
bool flip_t=
false,
ROI roi={},
866 const Filter2D *filter,
int chan_s=0,
int chan_t=1,
867 bool flip_s=
false,
bool flip_t=
false,
ROI roi={},
872 float filterwidth=0.0
f,
int chan_s=0,
int chan_t=1,
873 bool flip_s=
false,
bool flip_t=
false,
ROI roi={},
877 int chan_s=0,
int chan_t=1,
bool flip_s=
false,
878 bool flip_t=
false,
ROI roi={},
int nthreads=0);
888 ROI roi={},
int nthreads=0);
891 ROI roi={},
int nthreads=0);
900 ROI roi={},
int nthreads=0);
903 ROI roi={},
int nthreads=0);
913 ROI roi={},
int nthreads=0);
916 ROI roi={},
int nthreads=0);
931 ROI roi={},
int nthreads=0);
934 ROI roi={},
int nthreads=0);
944 ROI roi={},
int nthreads=0);
947 ROI roi={},
int nthreads=0);
987 ROI roi={},
int nthreads=0);
990 ROI roi={},
int nthreads=0);
999 bool z_zeroisinf=
false,
ROI roi={},
int nthreads=0);
1002 bool z_zeroisinf=
false,
ROI roi={},
int nthreads=0);
1026 ROI roi={},
int nthreads=0);
1029 ROI roi={},
int nthreads=0);
1056 float outCenter=0.0
f,
float scale=1.0
f,
1057 ROI roi={},
int nthreads=0);
1060 float outCenter=0.0,
float scale=1.0
f,
1061 ROI roi={},
int nthreads=0);
1072 ROI roi={},
int nthreads=0);
1076 ROI roi={},
int nthreads=0);
1095 ROI roi={},
int nthreads=0);
1098 ROI roi={},
int nthreads=0);
1106 ROI roi={},
int nthreads=0);
1109 ROI roi={},
int nthreads=0);
1126 bool clampalpha01 =
false,
ROI roi={},
int nthreads=0);
1131 bool clampalpha01 =
false,
ROI roi={},
int nthreads=0);
1147 ROI roi={},
int nthreads=0);
1151 ROI roi={},
int nthreads=0);
1189 ROI={},
int nthreads=0);
1195 ROI={},
int nthreads=0);
1221 int firstchannel = 0,
ROI roi={},
int nthreads=0);
1223 int firstchannel = 0,
ROI roi={},
int nthreads=0);
1261 ROI roi={},
int nthreads=0);
1266 ROI roi={},
int nthreads=0);
1300 ROI roi={},
int nthreads=0);
1302 ROI roi={},
int nthreads=0);
1304 bool useluma =
false,
ROI roi={},
int nthreads=0);
1306 bool useluma =
false,
ROI roi={},
int nthreads=0);
1323 void reset (
int nchannels);
1334 ROI roi={},
int nthreads=0);
1338 #ifndef DOXYGEN_SHOULD_SKIP_THIS
1341 ROI roi={},
int nthreads=0);
1374 float failthresh,
float warnthresh,
1375 float failrelative,
float warnrelative,
1376 ROI roi={},
int nthreads=0);
1387 float failthresh,
float warnthresh,
1388 ROI roi={},
int nthreads=0);
1407 float luminance = 100,
float fov = 45,
1408 ROI roi={},
int nthreads=0);
1410 #ifndef DOXYGEN_SHOULD_SKIP_THIS
1415 float failthresh,
float warnthresh,
1416 CompareResults &result,
ROI roi={},
int nthreads=0);
1428 ROI roi={},
int nthreads=0);
1429 #ifndef DOXYGEN_SHOULD_SKIP_THIS
1431 ROI roi={},
int nthreads=0) {
1443 float val,
float threshold=0.0
f,
1444 ROI roi={},
int nthreads=0);
1445 #ifndef DOXYGEN_SHOULD_SKIP_THIS
1447 ROI roi,
int nthreads=0) {
1459 ROI roi={},
int nthreads=0);
1460 #ifndef DOXYGEN_SHOULD_SKIP_THIS
1491 ROI roi={},
int nthreads=0);
1511 ROI roi={},
int nthreads=0);
1537 int blocksize = 0,
int nthreads=0);
1551 int bins=256,
float min=0.0
f,
float max=1.0
f,
1552 bool ignore_empty=
false,
1553 ROI roi={},
int nthreads=0);
1556 #ifndef DOXYGEN_SHOULD_SKIP_THIS
1593 #ifndef DOXYGEN_SHOULD_SKIP_THIS
1597 float width,
float height,
float depth = 1.0
f,
1600 return ! dst.has_error();
1634 ROI roi={},
int nthreads=0);
1701 ROI roi={},
int nthreads=0);
1703 ROI roi={},
int nthreads=0);
1705 ROI roi={},
int nthreads=0);
1707 ROI roi={},
int nthreads=0);
1737 int *pixelsFixed =
nullptr,
1738 ROI roi={},
int nthreads=0);
1743 int *pixelsFixed =
nullptr,
1744 ROI roi={},
int nthreads=0);
1754 ROI roi={},
int nthreads=0);
1757 ROI roi={},
int nthreads=0);
1769 int width = 3,
int height = -1,
1770 ROI roi={},
int nthreads=0);
1773 int width = 3,
int height = -1,
1774 ROI roi={},
int nthreads=0);
1799 float contrast = 1.0
f,
float threshold = 0.0
f,
1800 ROI roi={},
int nthreads=0);
1804 float contrast = 1.0
f,
float threshold = 0.0
f,
1805 ROI roi={},
int nthreads=0);
1815 ROI roi={},
int nthreads=0);
1818 int width=3,
int height=-1,
ROI roi={},
int nthreads=0);
1828 ROI roi={},
int nthreads=0);
1831 int width=3,
int height=-1,
ROI roi={},
int nthreads=0);
1887 ROI roi={},
int nthreads=0);
1898 ROI roi={},
int nthreads=0);
1903 bool unpremult,
ROI roi={},
int nthreads=0);
1945 ROI roi={},
int nthreads=0);
1949 ROI roi={},
int nthreads=0);
1985 bool unpremult=
true,
bool inverse=
false,
1988 ROI roi={},
int nthreads=0);
1992 bool unpremult=
true,
bool inverse=
false,
1995 ROI roi={},
int nthreads=0);
2042 bool unpremult=
true,
bool inverse=
false,
2045 ROI roi={},
int nthreads=0);
2050 bool unpremult=
true,
bool inverse=
false,
2053 ROI roi={},
int nthreads=0);
2055 #ifndef OIIO_DOXYGEN
2063 ROI roi={},
int nthreads=0);
2071 ROI roi={},
int nthreads=0);
2100 bool unpremult=
true,
bool inverse=
false,
2102 ROI roi={},
int nthreads=0);
2106 bool unpremult=
true,
bool inverse=
false,
2108 ROI roi={},
int nthreads=0);
2143 ROI roi={},
int nthreads=0);
2146 ROI roi={},
int nthreads=0);
2149 ROI roi={},
int nthreads=0);
2373 std::ostream *outstream =
nullptr);
2381 std::ostream *outstream =
nullptr);
2386 const std::vector<std::string> &filenames,
2389 std::ostream *outstream =
nullptr);
2402 ROI roi={},
int nthreads=0);
2410 ROI roi={},
int nthreads=0);
2422 #ifndef DOXYGEN_SHOULD_SKIP_THIS
2428 return !dst.has_error();
2430 #endif // DOXYGEN_SHOULD_SKIP_THIS
2433 #if defined(__OPENCV_CORE_TYPES_H__) || defined(OPENCV_CORE_TYPES_H)
2437 #ifndef DOXYGEN_SHOULD_SKIP_THIS
2444 inline
bool from_IplImage (
ImageBuf &dst, const IplImage *ipl,
2446 dst = from_IplImage (ipl,
convert);
2447 return ! dst.has_error();
2454 #endif // DOXYGEN_SHOULD_SKIP_THIS
2479 ROI roi={},
int nthreads=0);
2482 ROI roi={},
int nthreads=0);
2494 ROI roi={},
int nthreads=0);
2502 bool occlusion_cull =
true,
2503 ROI roi={},
int nthreads=0);
2506 const ImageBuf &B,
bool occlusion_cull =
true,
2507 ROI roi={},
int nthreads=0);
2517 ROI roi={},
int nthreads=0);
2521 ROI roi={},
int nthreads=0);
2531 #ifndef DOXYGEN_SHOULD_SKIP_THIS
2535 ROI roi={},
int nthreads=0) {
2536 int nc (roi.defined() ? roi.nchannels() : dst.
nchannels());
2537 return fill (dst, {
values, nc}, roi, nthreads);
2541 ROI roi={},
int nthreads=0) {
2542 int nc (roi.defined() ? roi.nchannels() : dst.
nchannels());
2546 inline bool fill (
ImageBuf &dst,
const float *topleft,
const float *topright,
2547 const float *bottomleft,
const float *bottomright,
2548 ROI roi={},
int nthreads=0) {
2549 int nc (roi.defined() ? roi.nchannels() : dst.
nchannels());
2550 return fill (dst, {topleft, nc}, {topright, nc}, {bottomleft, nc},
2551 {bottomright, nc}, roi, nthreads);
2556 const float *color1,
const float *color2,
2558 ROI roi={},
int nthreads=0) {
2559 int nc (roi.defined() ? roi.nchannels() : dst.
nchannels());
2560 return checker (dst, width, height, depth, {color1,nc}, {color2,nc},
2566 ROI roi={},
int nthreads=0) {
2571 ROI roi={},
int nthreads=0) {
2576 ROI roi={},
int nthreads=0) {
2581 ROI roi={},
int nthreads=0) {
2586 ROI roi={},
int nthreads=0) {
2596 const float *C,
ROI roi={},
int nthreads=0) {
2597 return mad (dst, A, C, B, roi, nthreads);
2601 const float *C,
ROI roi={},
int nthreads=0) {
2607 ROI roi={},
int nthreads=0) {
2613 const float *weights=
nullptr,
ROI roi={},
2621 int nchannels,
const int *channelorder,
2622 const float *channelvalues=
nullptr,
2623 const std::string *newchannelnames=
nullptr,
2624 bool shuffle_channel_names=
false,
int nthreads=0) {
2625 return channels (dst, src, nchannels,
2626 { channelorder, channelorder?nchannels:0 },
2627 { channelvalues, channelvalues?nchannels:0 },
2628 { newchannelnames, newchannelnames?nchannels:0},
2629 shuffle_channel_names, nthreads);
2634 const float *
min=
nullptr,
const float *
max=
nullptr,
2635 bool clampalpha01 =
false,
2636 ROI roi={},
int nthreads=0) {
2644 ROI roi={},
int nthreads=0) {
2651 int ncolors,
const float *color,
2652 const float *eps=
nullptr,
2653 ROI roi={},
int nthreads=0) {
2663 const float *low,
const float *high,
2664 ROI roi={},
int nthreads=0) {
2673 const float *textcolor) {
2674 return render_text (dst, x, y, text, fontsize, fontname,
2675 {textcolor, textcolor?dst.
nchannels():0});
2678 #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
ImageBuf OIIO_API copy(const ImageBuf &src, TypeDesc convert=TypeUnknown, ROI roi={}, int nthreads=0)
bool OIIO_API normalize(ImageBuf &dst, const ImageBuf &A, float inCenter=0.0f, float outCenter=0.0f, float scale=1.0f, ROI roi={}, int nthreads=0)
ImageBuf OIIO_API complex_to_polar(const ImageBuf &src, ROI roi={}, int nthreads=0)
Image_or_Const(const float(&array)[N])
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)
ImageBuf OIIO_API colormatrixtransform(const ImageBuf &src, M44fParam M, bool unpremult=true, ROI roi={}, int nthreads=0)
CompareResults OIIO_API compare(const ImageBuf &A, const ImageBuf &B, float failthresh, float warnthresh, float failrelative, float warnrelative, ROI roi={}, int nthreads=0)
ImageBuf OIIO_API ociofiletransform(const ImageBuf &src, string_view name, bool unpremult=true, bool inverse=false, const 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)
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)
OIIO_INLINE_CONSTEXPR TypeDesc TypeUnknown(TypeDesc::UNKNOWN)
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
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 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)
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 st_warp(const ImageBuf &src, const ImageBuf &stbuf, string_view filtername=string_view(), float filterwidth=0.0f, int chan_s=0, int chan_t=1, bool flip_s=false, bool flip_t=false, ROI roi={}, int nthreads=0)
ImageBuf OIIO_API div(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="", const ColorConfig *colorconfig=nullptr, ROI roi={}, int nthreads=0)
Transform between named color spaces, returning an ImageBuf result.
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
ImageBuf OIIO_API warp(const ImageBuf &src, M33fParam M, string_view filtername=string_view(), float filterwidth=0.0f, bool recompute_roi=false, ImageBuf::WrapMode wrap=ImageBuf::WrapDefault, ROI roi={}, int nthreads=0)
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)
IMATH_NAMESPACE::V2f IMATH_NAMESPACE::Box2i std::string this attribute is obsolete as of OpenEXR v3 float
OIIO_API const ImageBuf & bluenoise_image()
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="", const ColorConfig *colorconfig=nullptr, ROI roi={}, int nthreads=0)
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 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)
GA_API const UT_StringHolder N
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 ociodisplay(const ImageBuf &src, string_view display, string_view view, string_view fromspace="", string_view looks="", bool unpremult=true, bool inverse=false, string_view context_key="", string_view context_value="", const ColorConfig *colorconfig=nullptr, 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)
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