|
23 | 23 | #include <OpenImageIO/imagebuf.h>
|
24 | 24 | #include <OpenImageIO/imagebufalgo.h>
|
25 | 25 | #include <OpenImageIO/imagebufalgo_util.h>
|
| 26 | +#include <OpenImageIO/imagecache.h> |
26 | 27 | #include <OpenImageIO/imageio.h>
|
27 | 28 | #include <OpenImageIO/timer.h>
|
28 | 29 | #include <OpenImageIO/unittest.h>
|
@@ -1107,6 +1108,28 @@ test_opencv()
|
1107 | 1108 | auto comp = ImageBufAlgo::compare(src, dst, 0.0f, 0.0f);
|
1108 | 1109 | OIIO_CHECK_EQUAL(comp.error, false);
|
1109 | 1110 | OIIO_CHECK_EQUAL(comp.maxerror, 0.0f);
|
| 1111 | + |
| 1112 | + // Regression test: reading from ImageBuf-backed image to OpenCV |
| 1113 | + auto loaded_image = OIIO::ImageBuf("../../testsuite/common/tahoe-tiny.tif", |
| 1114 | + 0, 0, ImageCache::create()); |
| 1115 | + OIIO_CHECK_ASSERT(loaded_image.initialized()); |
| 1116 | + if (!loaded_image.initialized()) { |
| 1117 | + std::cout << loaded_image.geterror() << 'n'; |
| 1118 | + return; |
| 1119 | + } |
| 1120 | + auto cv_image = cv::Mat {}; |
| 1121 | + try { |
| 1122 | + bool ok = OIIO::ImageBufAlgo::to_OpenCV(cv_image, loaded_image, {}, 1); |
| 1123 | + OIIO_CHECK_ASSERT(ok); |
| 1124 | + if (!ok) { |
| 1125 | + std::cout << "Error when converting: " << OIIO::geterror() << '\n'; |
| 1126 | + return; |
| 1127 | + } |
| 1128 | + } catch (const std::exception& e) { |
| 1129 | + OIIO_CHECK_ASSERT(0); |
| 1130 | + std::cout << "Error when converting: " << e.what() << '\n'; |
| 1131 | + return; |
| 1132 | + } |
1110 | 1133 | #endif
|
1111 | 1134 | }
|
1112 | 1135 |
|
|
0 commit comments