2014-02-25 3 views
1

저는 opencv에서 새내기입니다. 원형 영역에서 객체를 감지해야합니다. 이미지가 있고 고정 된 점이 있습니다.C++의 원형 영역에서 Opencv 객체 감지

원을 중심으로 점을 찍으면 직경이 d 인 원 안에있는 객체를 감지해야합니다. 먼저 원형 부분을 잘라내어 그 안에있는 객체를 감지해야한다고 생각합니다. 어떻게해야합니까? ?

의사 코드

:

void detect_func() {  

IpImage im= cvLoadImage(my_image); 

Cut_The_Circular_Area(); 

Detect_Object(); 
} 
난이도 내가 그걸 몰랐어요, 당신을 도울 수있을 것 같아요
+1

원을 사용하여 마스크를 만들고 마스크와 함께 원본을 새 이미지로 복사 할 수 있습니다. 그리고 newbee가 deprecated C를 사용하지 않는다면, C++로 시작하십시오. – Haris

+0

@harris에게 감사드립니다. – barp

답변

0
Mat image = imwrite("lena.jpg"); 
Mat roi = cvCreateMat(image.rows,image.cols, CV_8UC1); 
Mat test = cvCreateMat(image.rows,image.cols, CV_8UC1); 
for(int i=0; i < res.cols; i++) 
    for(int j=0; j < res.rows; j++) 
     roi.at<uchar>(Point(i,j)) = 0; 
circle(roi, point, radius, 255, -1, 8, 0); 
image.copyTo(test,roi); 
for(int i=0; i < test.cols; i++) 
    for(int j=0; j < test.rows; j++) 
     if(test.at<uchar>(Point(i,j)) > 0) { 
      //Do your processing here 
     } 

, 우리는 단지 일반적인 사각형처럼 원형 ROI를 자르 못할, 그래서 나는이 조각을 시도, 그것은 수도