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