#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);
}
'미분류' 카테고리의 다른 글
OpevCV HSV 색공간에 대해 알아보자 (0) | 2017.08.04 |
---|---|
OpenCV YCbCr 색공간에 대해 알아보자 (0) | 2017.08.04 |
OpenCV를 활용한 이미지 유사도 비교 방법 (Feature Matching) (12) | 2017.07.06 |
OpenCV 자료구조에 대해 알아보자 (0) | 2017.07.05 |
목차 0 영상의 정의는 무엇이며 영상처리는 무엇인가 - (0) | 2017.07.04 |