2014-11-20 1 views
1

저는 이미지 처리가 처음이므로 이미지에있는 가장자리의 강도를 계산해야합니다. 이미지가 있고 그 이미지에 흐림 효과를 추가하는 경우를 가정합니다. 이 두 이미지의 가장자리의 강도가 다릅니다. 나는 을 계산할 필요가 있는데,이 두 이미지의 가장자리 강도는 각각입니다.OpenCV - 이미지의 가장자리 강도 계산

지금까지 아래 코드를 사용하여 이미지의 가장자리를 감지했습니다.

Mat src1; 
    src1 = imread("D.PNG", CV_LOAD_IMAGE_COLOR); 
    namedWindow("Original image", CV_WINDOW_AUTOSIZE); 
    imshow("Original image", src1); 
    Mat gray, edge, draw; 
    cvtColor(src1, gray, CV_BGR2GRAY); 
    Canny(gray, edge, 50, 150, 3); 
    edge.convertTo(draw, CV_8U); 
    namedWindow("image", CV_WINDOW_AUTOSIZE); 
    imshow("image", draw); 
    waitKey(0); 
    return 0; 

이 가장자리 이미지의 강도를 계산할 수있는 방법이 있습니까?

+1

"이 가장자리 이미지의 강도"를 지정하십시오. 나는 많은 수의 가장자리 나 매우 날카로운 모서리 또는 다른 것을 찾고 있는지 알지 못합니다. – beaker

+0

이 코드에서 가장자리 이미지를 얻습니다 .i 가장자리의 강도를 계산하고 싶습니다. 이 가장자리 이미지의 평균값이 될 수 있습니다. 날카로운 모서리 나 큰 모서리를 사용하여 평균값을 계산할 수 있습니다. – Sml

+0

좋은 계획처럼 들립니다. 당신의 결과는 무엇입니까? – beaker

답변

0

mean은 이미지의 평균값을 제공합니다. 당신이 Canny를 사용하는 경우 당신이 할 수있는 이상과 같이

Scalar pixelMean = mean(draw); 

은 가장자리 픽셀의 평균을 얻으려면, 당신은뿐만 아니라 마스크로 이미지를 사용합니다 :

Scalar edgeMean = mean(draw, draw); 

를 불행하게도, 이후 Canny은 모든 가장자리 픽셀을 255으로 설정합니다. 평균은 항상 255입니다. 이것이 당신이 찾고있는 측정 값이라면, 아마도 가우시안 블러 이후에 Sobel을 사용하고 상대적 에지 강도를 얻기 위해 그래디언트를 계산하기를 원할 것입니다.