미분류

유사 연산자 엣지 검출

Nanamare 2017. 7. 8. 17:50
728x90

#include <opencv2/highgui.hpp>

using namespace cv;

using namespace std;


/*

@author : sin.hyunsung (nanamare.tistory.com)

@content 차분연산을 통한 엣지 검출 중 유사연산자 엣지 검출

*/


void homogenOp(Mat img, Mat& dst, int mask_size) {

dst = Mat(img.size(), CV_8U, Scalar(0));

Point h_m(mask_size / 2, mask_size / 2);


for (int i = h_m.y; i < img.rows - h_m.y; i++) {  //행증가

for (int j = h_m.x; j < img.cols - h_m.x; j++) { //열증가

float max = 0; //최대출력화소 변수


for (int u = 0; u < mask_size; u++) {

for (int v = 0; v < mask_size; v++) {

int y = i + u - h_m.y;

int x = j + v - h_m.x;

float difference = abs(img.at<uchar>(i, j) - img.at<uchar>(y, x));

if (difference > max) max = difference;

}

}

dst.at<uchar>(i, j) = max;

}

}


}



void main() {


Mat image = imread("../image/test.jpg", 0);

Mat edge;

homogenOp(image, edge, 3);


imshow("image", image);

imshow("edge_homogenOp", edge);


waitKey(0);


}





728x90