private Mat Median(Mat picture, Mat result) { Data_th th_data = th.Get_Data(); Cv2.MedianBlur(picture, result, th_data.Get_Gkernel()); return(result); }
private Mat Gaussian(Mat picture, Mat result) { Data_th th_data = th.Get_Data(); Cv2.GaussianBlur(picture, result, new OpenCvSharp.Size(th_data.Get_Gkernel(), th_data.Get_Gkernel()), 1); // sigma: 흐려지는 정도 return(result); }
private Mat Canny(Mat picture, Mat result) { Data_th th_data = th.Get_Data(); Cv2.Canny(picture, result, th_data.Get_Cth1(), th_data.Get_Cth2()); // 임계값 1이하에 포함되는 가장자리는 제외, 2이상 포함되는 가장자리는 가장자리로 간주. return(result); }
private Mat Sharpening(Mat picture, Mat result) { Data_th th_data = th.Get_Data(); Mat tmp = Mat.Zeros(new OpenCvSharp.Size(picture.Cols, picture.Rows), MatType.CV_8UC3); Cv2.GaussianBlur(picture, tmp, new OpenCvSharp.Size(9, 9), th_data.Get_Shsigma()); Cv2.AddWeighted(picture, th_data.Get_Shth1(), tmp, -th_data.GetShth2(), 7.5, result); return(result); }
private Mat Sobel(Mat picture, Mat result) { Data_th th_data = th.Get_Data(); if (picture.Channels() != 1) { Cv2.CvtColor(picture, picture, ColorConversionCodes.BGR2GRAY); } Cv2.Sobel(picture, result, MatType.CV_8U, th_data.Get_Sbx(), th_data.Get_Sby()); return(result); }
public void Set_Data(Data_th th_data) { this.data = th_data; }