用的是毛星云(浅墨大神)的书。

Alpha:内测。

Beta:公测。

calibration:校准。

hpp头文件与h头文件的区别

legacy:遗产。

OpenCV4.3.0官方文档

example1:图像腐蚀

读取和显示图像,腐蚀函数。

 

45.嵌入式openCV学习笔记一(腐蚀,模糊,Canny)_均值滤波

代码如下:

#include <iostream>  
#include <opencv2/core/core.hpp>  
#include <opencv2/highgui/highgui.hpp>  
#include <opencv2/imgproc/imgproc.hpp>
//头文件要记得导入

using namespace cv;

int main()
{
	// 读入一张图片(1.jpg)    
	Mat srcImage = imread("D://1.jpg");
	//将名字叫做srcImage的图像展示出来
	imshow("原图腐蚀操作", srcImage);
	//定义图像大小
	Mat element = getStructuringElement(MORPH_RECT, Size(15, 15));
	//腐蚀操作
	Mat dstImage;
	erode(srcImage, dstImage, element);
	imshow("效果图腐蚀操作", dstImage);
	waitKey(0);
	return 0;
}

 example2:均值滤波实现图像模糊,Size(15,15)是以该点为中心画15x15矩阵,取平均值之后的值赋给该像素点。

blur(srcImage, dstImage, Size(15, 15));
//srcIamge是原图,dstImage是效果图

45.嵌入式openCV学习笔记一(腐蚀,模糊,Canny)_头文件_02

example3.canny边缘检测

abort()has been called

0x00007FFDD60BA859 处(位于 Project1.exe 中)有未经处理的异常: Microsoft C++

最后发现是因为函数里面的图像名字写反了。改代码切记要一行行核对。

F9设置断点。

F5开始调试(ctl+F5直接运行,不调试)

F11逐语句运行,F10是逐过程。

转灰度,均值滤波,Canny切边。

代码如下:

#include <iostream>  
#include <opencv2/core/core.hpp>  
#include <opencv2/highgui/highgui.hpp>  
#include <opencv2/imgproc/imgproc.hpp>
//头文件要记得导入

using namespace cv;

int main()
{
	// 读入一张图片(1.jpg)    
	Mat srcImage = imread("D://1.jpg");
	//将名字叫做srcImage的图像展示出来
	imshow("原图-canny边缘检测", srcImage);
	//均值滤波操作
	Mat dstImage,edge,grayImage;
	//创建和dstImage同大小和同型的矩阵。这行不要也可以正常运行
	//dstImage.create(srcImage.size(), srcImage.type());
	//化成灰度图
	cvtColor(srcImage, grayImage, COLOR_BGR2GRAY);
	//用3x3矩阵均值滤波
	blur(grayImage, edge, Size(3, 3));
	//Canny算子切边
	Canny(edge, edge, 3, 9, 3);
	imshow("效果图-canny边缘检测",edge);
	waitKey(0);
	return 0;
}

效果如下:

45.嵌入式openCV学习笔记一(腐蚀,模糊,Canny)_均值滤波_03