上一个文档,已经学习了简单的图像处理类,现在可以用那些简单的函数来进行例程学习了,其实都是最简单的,后续还会详细学习的,现在就是了解一下。
第一个程序:图像显示
就是用Mat和imread以及imshow初始化、加载、显示图像
#include <opencv2/opencv.hpp>
using namespace cv;
void main()
{
Mat srcImage = imread("d:\\ss.jpg"); //载入图像
imshow("原始图", srcImage); //显示图像
waitKey(0);
}
第二个程序:图像腐蚀
这是最基本的图像形态学运算之一 腐蚀。就是暗色“腐蚀”掉高亮部分。
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
using namespace cv;
int main()
{
Mat srcImage = imread("d:\\ss.jpg");
imshow("原图", srcImage);
Mat element = getStructuringElement(MORPH_RECT, Size(15, 15)); //腐蚀程度
Mat dstImage;
erode(srcImage, dstImage, element); //腐蚀
imshow("腐蚀后", dstImage);
waitKey(0);
return 0;
}
第三个程序:图像模糊(均值滤波) blur函数
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
using namespace cv;
int main()
{
Mat srcImage = imread("d:\\ss.jpg");
imshow("原图", srcImage);
Mat dstImage;
blur(srcImage, dstImage, Size(7, 7)); //滤波
imshow("滤波后", dstImage);
waitKey(0);
return 0;
}
第四个程序:边缘检测 canny函数
大致可分为:载入图像、转成灰度图、blur降噪、canny边缘检测
#include <opencv2/opencv.hpp>
#include <opencv2/imgproc/imgproc.hpp>
using namespace cv;
int main()
{
Mat srcImage = imread("d:\\ss.jpg");
imshow("原图", srcImage);
Mat grayImage, dstImage, edges;
cvtColor(srcImage, grayImage, COLOR_BGR2GRAY); //转灰度
imshow("灰度图", grayImage);
blur(grayImage, dstImage, Size(3, 3)); //滤波
imshow("降噪图", dstImage);
Canny(dstImage, edges, 3, 9, 3); //边缘检测
imshow("边缘检测",edges);
waitKey(0);
return 0;
}
这是OpenCV最简单的图像处理,下一篇将进行视频处理例程。