2017-08-04 16 views
0

大きな矩形を小さな矩形で置き換える必要がある操作をしています。OpenCV:大きな矩形を小さな矩形に置き換える方法

ほとんどの回答はsmallerRectMat.copyTo(biggerRectMat)を使用するように提案されましたが、それは私に必要な出力を与えませんでした。サブマートは変更されますが、元のイメージはそのままです。

私がサブタイトルを見ようとすると、同じ小さな四角形のサイズになりました。

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); 

基本的に、鼻領域の近くの矩形を、額に青色の境界線を持つ矩形にコピーしたいとします。

enter image description here

+0

スケーリングROI(画像の領域)を試すことができます! – zeFrenchy

+0

@zeフランス語の誤字。 – arqam

答えて

1

あなたはあなたのコードがtest1.jpgを上書き

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 
関連する問題