opencv14-自定义线性滤波
生活随笔
收集整理的這篇文章主要介紹了
opencv14-自定义线性滤波
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
?
卷積作用:提取邊緣,圖像增強圖像銳化,模糊圖像
#include<opencv2\opencv.hpp> #include<opencv2\highgui\highgui.hpp> #include<iostream> #include<math.h> using namespace std; using namespace cv; int main() {Mat src = imread("E:\\vs2015\\opencvstudy\\1.jpg", 1);if (src.empty()){cout << "could not load the src image!" << endl;return -1;}char *input_title = "input Image";imshow(input_title, src);Mat robertx_image, roberty_image;Mat robert_x = (Mat_<int>(2, 2) << 1, 0, 0, -1);filter2D(src, robertx_image, -1, robert_x, Point(-1, -1), 0.0);imshow("robertx", robertx_image);Mat robert_y = (Mat_<int>(2, 2) << 0, 1, -1, 0);filter2D(src, roberty_image, -1, robert_y, Point(-1, -1), 0.0);imshow("roberty", roberty_image);Mat sobelx_image, sobely_image;Mat sobel_x = (Mat_<int>(3, 3) << -1,0,1,-2,0,2,-1,0,1);filter2D(src, sobelx_image, -1, sobel_x, Point(-1, -1), 0.0);imshow("sobelx", sobelx_image);Mat sobel_y = (Mat_<int>(3, 3) << -1,-2,-1,0,0,0,1,2,1);filter2D(src, sobely_image, -1, sobel_y, Point(-1, -1), 0.0);imshow("sobely", sobely_image);Mat lapulasi_image; //邊緣檢測算子Mat lapulasi = (Mat_<int>(3, 3) << 0,-1,0,-1,4,-1,0,-1,0);filter2D(src, lapulasi_image, -1, lapulasi, Point(-1, -1), 0.0);imshow("lapulasi", lapulasi_image);//利用filter2D自定義卷積核int c = 0;int index = 0;int ksize = 3;Mat filter_image;while (true){c = waitKey(1000);if ((char)c == 27) //ESC{break;}ksize = (index % 5) * 2 + 1;Mat kernal = Mat::ones(Size(ksize,ksize),CV_32F)/(float)(ksize*ksize);filter2D(src, filter_image, -1, kernal, Point(-1, -1));index++;imshow("filter2D", filter_image);}waitKey(0);return 0; }?
?
總結(jié)
以上是生活随笔為你收集整理的opencv14-自定义线性滤波的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用securecrt在本地与服务器之间
- 下一篇: 戴尔笔记本电脑开机黑屏怎么办_戴尔笔记本