opencv3学习之图像显示及腐蚀/模糊/Canny边缘检测的处理
来源:互联网 发布:vgg19网络结构图 编辑:程序博客网 时间:2024/06/05 04:47
几个小程序,很好理解。
//1.图像的显示
#include <opencv2/opencv.hpp>
using namespace cv;//cv命名空间
int main()
{
Mat srcImage=imread("/Users/oumoemoe/Downloads/apple.jpg",199);//199是三通道彩色图像,0是灰度图像,2|4是无损图像
imshow("原始图", srcImage);//显示图像
waitKey(0);
return 0;
}
//2.图像腐蚀效果
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/opencv.hpp>
#include <opencv2/imgproc/imgproc.hpp>
using namespace cv;
int main(){
Mat srcImage=imread("/Users/oumoemoe/Downloads/apple.jpg");//图像载入
imshow("原图像", srcImage);//显示原图像
Mat element=getStructuringElement(MORPH_CROSS, Size(20,20));//返回的是形状和尺寸,注意size的大小写,这个size指的是腐蚀的大小
/*OpenCV提供了一个函数getStructuringElement,可以获取常用的结构元素的形状:矩形(包括线形)、椭圆(包括圆形)及十字形
(像马赛克那种)。 MORPH_RECT, MORPH_ELLIPSE, MORPH_CROSS */
Mat dstImage;//声明一个变量用来存放处理后的图像
erode(srcImage, dstImage, element);//处理图像,erode腐蚀的意思,很形象。简单的参数传递。
imshow("图像腐蚀效果",dstImage);//显示处理后的图像
waitKey(0);
return 0;
}
//3.图像模糊效果
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
using namespace cv;
int main(){
Mat srcImage=imread("/Users/oumoemoe/Downloads/building.png");
imshow("原图像", srcImage);
Mat dstImage;
blur(srcImage, dstImage, Size(20,20));//进行均值滤波操作,blur函数可以通过图像模糊来降噪,降低噪点的目的是为了完善画质。
//把图像放大会发现有很多黑点,降噪就是通过模糊来去除这些黑点。
imshow("图像模糊效果", dstImage);
waitKey(0);
return 0;
}
噪声都是高频信号,设计滤波器就是通过降低高频成分来减弱噪声影响。
OpenCV中常用的滤波器有五种:
方框滤波——boxblur函数
均值滤波——blur函数
高斯滤波——GaussianBlur函数
中值滤波——medianBlur函数
双边滤波——bilateralFilter函数
因为用到了blur函数,所以详细看了一下blur均值滤波器的用法。
blur( InputArray src, OutputArray dst,Size ksize);
第一个参数就是输入图像,第二个参数是输出的图像,这个有一个要求就是要和原图像尺寸类型一致。所以前面要处理一下。(QUESTION:但是我这个程序里没有用到Clone函数,也成功了,为什么呢,Clone函数应该怎么用呢,等我学完一圈回来解决)
第三个参数,Size类型的ksize,内核的大小。一般这样写Size( w,h )来表示内核的大小( 其中,w 为像素宽度, h为像素高度)。Size(3,3)就表示3x3的核大小,Size(5,5)就表示5x5的核大小,内核大小其实就是矩阵大小。
//4.Canny边缘检测(具体原理有点复杂,我没看懂,明天解决)
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
using namespacecv;
int main(){
Mat srcImage=imread("/Users/oumoemoe/Downloads/building.png");
imshow("原图", srcImage);
Mat dstImage,edge,grayImage;
dstImage.create(srcImage.size(), srcImage.type());
cvtColor(srcImage, grayImage,COLOR_BGR2GRAY);//图像灰度处理
blur(grayImage, edge,Size(3,3));//模糊处理
Canny(edge, edge, 3, 9,3);//Canny算子
imshow("边缘检测", edge);
waitKey(0);
return 0;
}
- opencv3学习之图像显示及腐蚀/模糊/Canny边缘检测的处理
- opencv入门学习第一章,对图像基本的操作(图像腐蚀、图像模糊、canny图像边缘检测)
- 图像腐蚀,模糊,canny边缘检测,opencv中摄像头捕捉的图像
- 图像处理之Canny边缘检测
- 图像处理之Canny边缘检测
- 图像处理之Canny边缘检测
- 图像处理------Canny边缘检测
- opencv3学习之边缘检测(Canny/Sobel/Laplacian算子)
- 【OpenCV学习笔记】2.3图像的腐蚀、膨胀、模糊、边缘检测
- opencv3_java 图像的边缘检测Canny Canny
- 【OpenCV3图像处理】边缘检测:Sobel算子,Laplace算子,Canny算子
- 图像处理--opencv2 canny边缘检测
- opencv3中Canny边缘检测-Canny函数
- iOS-Opencv 基础学习四(对图片进行图像模糊处理blur、边缘处理Canny)
- 学习之边缘检测sobel,log,canny
- OpenCV学习之Canny边缘检测
- opencv3的图像模糊处理
- 图像处理-Canny算子、Sobel算子边缘检测
- 移动设备IP地址的获取
- 七月算法深度学习 第三期 学习笔记-第六节 图像风格转换
- 获取div中input 中name=code的值
- 容斥原理+质因数分解-HDU4135
- [51NOD]-1264 线段相交 [计算几何&叉积&点积]
- opencv3学习之图像显示及腐蚀/模糊/Canny边缘检测的处理
- 单选对话框初识
- 高斯消元法
- c语言的改错练习
- axios post 请求参数
- iOS-icon图标
- 并发(六):用Exchanger实现数据交换
- [iOS 仿认证成功动画]
- VLC整体架构分析