OpenCV 中Mat对象的获取ROI区域自图像的问题

    xiaoxiao2021-03-26  24

    问题:

            OpenCV 2中使用Mat图像数据进行ROI提取子图像的操作时,获取的子图像与源图像依然存在联系。

            Mat big = imread(....);

            Mat sub = big(ROI); // 获取big的ROI区域子图

            // 修改sub图像像素,big跟随变化

            // 修改big图像像素, sub跟随变化

        很奇怪对不对?? 具体原因,后续继续探究!

    代码:

    int main() { // Mat big = Mat::zeros (400, 600, CV_8U); if (!big.empty()) { Rect roi (150, 100, 300, 200); Mat smll = big (roi); // for (int row = 0; row < smll.rows; row++) { for (int col = 0; col < smll.cols; col++) { smll.at<uchar> (row, col) = 255; } } // for (int row = 200; row < 300; row++) { for (int col = 400; col < 500; col++) { big.at<uchar> (row, col) = 127; } } imshow ("big", big); imshow ("smll", smll); waitKey (0); return 0; } // return 0; }

    运行:

    说明:

    转载请注明原文地址: https://ju.6miu.com/read-662960.html

    最新回复(0)