相关代码在这里(C ++,opencv):
Rect rec = boundingRect(...);
image_grey.copyTo(gesture_grey, mask);
imshow("image_grey", gesture_grey(rec));
resize(gesture_grey(rec), gesture_grey, Size(256, 256));
imshow("gesture_grey", gesture_grey);
为什么两个图像在调整大小之前和之后如此不同?如何解决?
答案 0 :(得分:1)
问题出在copyTo
方法中。它不会清除'gesture_grey'图像容器的内容。
当你使用gesture_grey(rec)
时,你正在有效地执行复制构造函数,它会为你提供一个新的图像容器,所以它很酷。但是,当您致电copyTo
时,您正在复制到现有目标'gesture_grey'。
要修复它,您需要在调用copyTo
之前重新初始化'gesture_grey'以清除它。否则,您看到的是先前“gesture_grey”内容+您从image_grey
复制的新内容的组合。