图像的读取
#include <opencv2\opencv.hpp>//OpenCV头文件的包含,版本249注意区分OpenCV1.0的写法
using namespace cv;//包含cv命名空间,所以省去了cv::Mat前的符号
int main(){
Mat img = imread("D:\\Program Files\\VS2013Code\\test01_compositePicture\\test01_compositePicture\\lena.jpg");
imshow("lena", img);
waitKey(0);
}
腐蚀
#include <opencv2\highgui\highgui.hpp>//高层GUI图形用户界面,包含媒体的输入输出、视频捕捉、图像和视频编码解码、图形交互界面的接口内容
#include<opencv2\imgproc\imgproc.hpp>//图像处理头文件
using namespace cv;//包含cv命名空间,所以省去了cv::Mat前的符号
int main(){
Mat img = imread("D:\\Program Files\\VS2013Code\\test01_compositePicture\\test01_compositePicture\\fruits.jpg");
imshow("原图", img);
Mat element = getStructuringElement(MORPH_RECT, Size(15, 15));//内核大小
Mat dstImage;
erode(img, dstImage, element);
imshow("腐蚀图", dstImage);
waitKey(0);
return 0;
}
图像模糊
使用均值滤波操作blur函数:
#include <opencv2\highgui\highgui.hpp>//高层GUI图形用户界面,包含媒体的输入输出、视频捕捉、图像和视频编码解码、图形交互界面的接口内容
#include<opencv2\imgproc\imgproc.hpp>//图像处理头文件
using namespace cv;//包含cv命名空间,所以省去了cv::Mat前的符号
int main(){
Mat img = imread("D:\\Program Files\\VS2013Code\\test01_compositePicture\\test01_compositePicture\\fruits.jpg");
imshow("原图", img);
Mat dstImage;
blur(img, dstImage, Size(7, 7));
imshow("模糊图", dstImage);
waitKey(0);
return 0;
}
Canny边缘检测
首先载入图片,灰度化,使用blur均值模糊减噪,使用Canny边缘检测。
#include <opencv2\highgui\highgui.hpp>//高层GUI图形用户界面,包含媒体的输入输出、视频捕捉、图像和视频编码解码、图形交互界面的接口内容
#include<opencv2\imgproc\imgproc.hpp>//图像处理头文件
using namespace cv;//包含cv命名空间,所以省去了cv::Mat前的符号
int main(){
Mat img = imread("D:\\Program Files\\VS2013Code\\test01_compositePicture\\test01_compositePicture\\fruits.jpg");
imshow("原图", img);
Mat edgeImg,grayImg;
cvtColor(img, grayImg, CV_BGR2GRAY);
blur(grayImg, edgeImg, Size(3, 3));
//运行Canny算子
Canny(edgeImg, edgeImg, 3, 9, 3);
imshow("Canny边缘检测图", edgeImg);
waitKey(0);
return 0;
}