用的是毛星云(浅墨大神)的书。
Alpha:内测。
Beta:公测。
calibration:校准。
hpp头文件与h头文件的区别
legacy:遗产。
example1:图像腐蚀
读取和显示图像,腐蚀函数。
代码如下:
#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是效果图
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;
}
效果如下: