2016-08-24 11 views
0

하나의 이미지를 다른 이미지로 복사하려고하는데 원본 이미지가 대상의 ROI에 저장되는 대신 타겟 이미지가 완전히 대체됩니다. 여기 이미지를 ROI로 복사

처럼 내 코드는 모습입니다 : 내가 OpenCV의이 지금 그러나 나는 OpenCVSharp에서이 연산자를 찾을 수 없습니다, ROI와 () 연산자를 사용하여 달성되는 것을 발견

var output = new Mat(size, size, MatType.CV_8UC3, background); 
var temp1 = image.Resize(new OpenCvSharp.Size(targetWidth, targetHeight), 0, 0, interpolation); 
xOffset = Convert.ToInt32((size - targetWidth)/2); 
yOffset = Convert.ToInt32((size - targetHeight)/2); 
output.AdjustROI(yOffset, (size - 1) - yOffset, xOffset, (size - 1) - xOffset); 
temp1.CopyTo(output); 
output.AdjustROI(0, size - 1, 0, size - 1); 

과 나는 그것이 무엇 단서가 없다 동등한 이름을 붙일 수 있습니다.

답변

0

나는이 OpenCVSharp에서 Mat의 생성자를 사용하여 달성 할 수 있음을 깨닫고 다음 코드는 트릭을 할 것 같다

var output = new Mat(size, size, MatType.CV_8UC3, background); 
var temp1 = image.Resize(new OpenCvSharp.Size(targetWidth, targetHeight), 0, 0, interpolation); 
xOffset = Convert.ToInt32((size - targetWidth)/2); 
yOffset = Convert.ToInt32((size - targetHeight)/2); 
var roi = new Mat(output, new Rect(xOffset, yOffset, targetWidth, targetHeight)); 
temp1.CopyTo(roi);