2012-10-08 3 views
2

가능한 중복 :
How to set ROI in OpenCV?스무딩

내가 이미지 만 특정 경로/지역의 스무딩/흐림 필터를 사용하려고 해요 소스의. (현재 openCV 사용)

어떻게 할 수 있습니까?

지금 나는

cv::GaussianBlur(im, newim, cv::Size(5,5),1.5); 

같은 것을하고 있어요 그러나 나는 할 쉽게 경우

cv::GaussianBlur(im, newim, cv::Size(5,5),1.5,MyClosedPath); 

나는 또한 IOS 클래스 중 하나를 사용할 수 있습니다 일을하고 싶습니다.

+0

투자 수익 (ROI)을 설정 Region of Interest)를 선택한 다음 다른 매트에 복사하고 부드럽게 한 다음 다시 원래 매트에 복사합니다. – karlphillip

답변

4

당신은 원래 행렬 예를 들면 밖으로 행렬을 얻을 수 있습니다 (아직 그 중 하나의 방법을 발견하지 않은 경우) : x, y, 폭, 높이가 귀하의 서브 이미지의 위치입니다

cv::Mat subMat = originalMatrix(cv::Rect(x, y, width, height)); 

. 그런 다음 서브 매트릭스에서 가우시안 블러를 수행하십시오.

[편집] 복잡한 모양을 흐리게하려는 경우 하나의 방법은 전체 이미지를 흐리게 한 다음 흐린 부분의 마스크 mat.copyTo을 사용하는 것입니다 : (

cv::Mat mask = ?; // this should be a CV_8U image with 0 pixels everywhere but where you want to blur the original image 
cv::Mat blurred; 
cv::gaussianBlur(image, blurred, cv::Size(5,5),1.5); 
cv::Mat output = image.clone(); 
blurred.copyTo(output, mask); 
+0

좀 더 복잡한 도형 (그리고 "구멍")을 만들어야합니다. 어떻게 다시 한 이미지에 결합 할 수 있습니까? –

+0

서브 매트릭스에서 변경 한 사항은 원래 매트릭스에도 적용됩니다. 귀하의 두 번째 질문에 대한 내 대답을 편집합니다 – remi

+0

그것을 표시하여 귀하의 질문에 대답하면 알려주십시오! 고마워 – remi

관련 문제