2013-04-18 2 views
0

opencv를 처음 사용하고 이미지에서 다른 개체를 감지하고 개별 개체에 효과를 적용하는 것과 같은 작업을하고 있습니다. 나는 모서리를 찾고 윤곽선을 얻기 위해 다음 코드를 사용하지만 어떻게 진행해야 하는지를 모른다. 어떤 도움 ???? 미리 당신이 그들의 윤곽을 통해 개체를 식별하기 위해 선택했기 때문에이미지 및 색상 개별 개체에서 어떤 모양의 개체를 검색하십시오.

cv::Mat edges; 
cv::Canny(gray, edges, 50, 150); 

std::vector< std::vector<cv::Point> > c; 
std::vector<cv::Point> points; 
cv::findContours(edges, c, CV_RETR_LIST, CV_CHAIN_APPROX_NONE); 
cv::Mat mask = cv::Mat::zeros(edges.rows, edges.cols, CV_8UC1); 
    for (size_t i=0; i<c.size(); i++) 
    { 
    for (size_t j = 0; j < c[i].size(); j++) 
    { 
    cv::Point p = c[i][j]; 
    points.push_back(p); 
    // printf(" %d \t",p.x); 
    } 


} 
cv::Mat crop(inputFrame.rows, inputFrame.cols, CV_8UC3); 
inputFrame.copyTo(outputFrame, mask); 

답변

0

에서 덕분에, 나는 (PDF)는 "변환 일반화 호우"를 계속하는 것이 좋습니다. 생각할 수있는 모든 관점에서 인식하려는 객체의 참조 윤곽을 만들어야합니다.

재미있는 또 다른 옵션은 이미지의 특정 개체를 선택하기 위해 segmentation algorithms을 조사하는 것입니다. 찾고있는 대상과 처리중인 이미지에 대해 알지 못하면 좋은 권장 사항을 제시하는 것은 불가능합니다. 모든 이미지에서 작동하는 범용 알고리즘은 없습니다 (적어도 알고있는 한).

최첨단 물체 클래스 인식에 대한 아이디어를 얻으려면 PASCAL VOC Challenge을 살펴보십시오. 문제가 챌린지보다 간단하면 (예 : 하나의 색상이있는 배경 앞에있는 작은 불변 개체), 질문에 지정해야합니다. 누군가가 당신에게 더 좋은 제안을 줄 수 있습니다.

관련 문제