opencv3/C++图像边缘提取
2017-12-18 22:05
435 查看
canny算子实现
使用track bar 调整canny算子参数,提取到合适的图像边缘。#include<iostream> #include<opencv2/opencv.hpp> using namespace cv; void trackBar(int, void*); int s1=0,s2=0; Mat src, dst; int main() { src = imread("E:/image/image/daibola.jpg"); if(src.empty()) { printf("can not load image \n"); return -1; } cvNamedWindow("input", CV_WINDOW_AUTOSIZE); imshow("input", src); dst = src.clone(); cvNamedWindow("output", CV_WINDOW_AUTOSIZE); createTrackbar("canny1", "output", &s1, 255, trackBar); createTrackbar("canny2", "output", &s2, 255, trackBar); GaussianBlur(src,src,Size(3,3),0); waitKey(); return 0; } void trackBar(int, void*) { Canny(src,dst,s1,s2,3); imshow("output", dst); }
Sobel算子实现
#include<iostream> #include<opencv2/opencv.hpp> using namespace cv; int main() { Mat src, dst; src = imread("E:/image/image/daibola.jpg"); if(src.empty()) { printf("can not load image \n"); return -1; } dst = Mat::zeros(src.size(), src.type()); cvNamedWindow("input", CV_WINDOW_AUTOSIZE); imshow("input", src); Mat kernel = (Mat_<int>(2,2)<<0,1,-1,0); filter2D(src,dst,-1,kernel,Point(-1,-1),0.0); Mat xgrad, ygrad; Sobel(src,xgrad,CV_16S,1,0,3); Sobel(src,ygrad,CV_16S,0,1,3); convertScaleAbs(xgrad,xgrad); convertScaleAbs(ygrad,ygrad); addWeighted(xgrad,0.5,ygrad,0.5,0,dst); //addWeighted(dst,0.5,src,1,0,dst); cvNamedWindow("output", CV_WINDOW_AUTOSIZE); imshow("output", dst); waitKey(); return 0; }
相关文章推荐
- OpenCV图像处理教程C++(十四)卷积算子、自定义线性滤波以及边缘处理
- OpenCV图像处理教程C++(十五)边缘检测算法--sobel算子、拉普拉斯算子、Canny算子
- OpenCV图像特征提取与检测C++(二)Harris角点检测、Shi-Tomasi 角点检测、亚像素级别角点检测
- 利用OpenCV提取图像的边缘,并将检测的边缘重新保存在一个新的文件中
- 【图像特征提取12】OpenCv的SIFT图像局部特征提取描述算法C++代码的实现
- OpenCV图像特征提取与检测C++(四)仿射变换、积分图计算
- OpenCV图像特征提取与检测C++(五)特征描述子--Brute-Force匹配、FLANN特征匹配、平面对象识别、AKAZE局部特征检测与匹配、BRISK特征检测与匹配、ORB特征提检测与匹配
- OpenCV3_C++_Akaze()图像的特征点提取 实例
- OpenCV图像特征提取与检测C++(七) 级联分类器 HAAR与LBP– 人脸检测(图像和视频)
- OpenCV入门:图像边缘提取
- OpenCV图像特征提取与检测C++(八)视频中人脸检测与眼睛跟踪
- OpenCV图像处理教程C++(十一) 形态学操作应用--提取水平与垂直线
- opencv提取图像边缘特征sobel算子的运用
- opencv——canny算子提取图像边缘
- OpenCV入门四:用OpenCV读取一个图像,并使用Canny算子进行边缘提取
- OpenCV图像特征提取与检测C++(一) 概述、编译opencv并添加拓展模块opencv_contrib
- 【OpenCV学习笔记 004】 图像的缩放、Canny边缘检测和图像的二值化
- 多尺度图像边缘提取技术
- opencv轮廓提取(边缘检测)后随机删除部分点,以减少运算量