我正在做一些操作,我需要用较小的矩形替换较大的矩形。
大多数答案建议使用smallerRectMat.copyTo(biggerRectMat)
,但它没有给我输出要求。子图像已更改,但原始图像不变。
当我试图看到submat变成相同的较小矩形时。
Mat rectNose = testBuffer.submat(rectA.y,rectA.y+rectA.height,rectA.x,rectC.x+rectC.width);
Rect biggerRect = getHeadContour(testBuffer);
Mat rectHead = testBuffer.submat(biggerRect.y+1,biggerRect.y+biggerRect.height,biggerRect.x+1,biggerRect.x+biggerRect.width);
rectNose.copyTo(rectHead);
Imgcodecs.imwrite("/Users/test.jpg",rectHead);
Imgcodecs.imwrite("/Users/test1.jpg",rectNose);
Imgcodecs.imwrite("/Users/test1.jpg",testBuffer);
基本上我想将鼻子区域附近的矩形复制到前额有蓝色边界的矩形。
答案 0 :(得分:1)
您可以尝试投资回报率(图像区域)缩放
smallRect = img[rectA.y:rectA.y+rectA.height, rectA.x:rectC.x+rectC.width]
upscaledRegion = cv2.resize(smallRect , (biggerRect.width, biggerRect.height), interpolation=cv2.INTER_AREA)
img[biggerRect.y:biggerRect.y+biggerRect.height, biggerRect.x:biggerRect.x+biggerRect.width] = upscaledRegion