您的位置:首页 > 运维架构

OpenCV 3学习笔记(二) 图像的显示、腐蚀与模糊

2016-12-17 15:00 531 查看

简介

初入OpenCV 3,首先就要学习最基本的图像操作。自从OpenCV 2以后,图像就不再存储在IplImage下,而是存储在一个新的数据结构Mat中。

由于图像在计算机中是以矩阵的形式进行存储,所以我们不妨把Mat类分成两部分理解,一部分是矩阵头(包含矩阵尺寸、存储方法、存储地址等信息),另一部分则是一个指向存储所有像素值的矩阵的指针。而过时的IplImage则没有矩阵头这些要素。

图像的显示

#include <opencv2/opencv.hpp>

using namespace cv;

int main(){
Mat img = imread("/Users/YWY/Pictures/house.jpg");
imshow("Original Image", img);
waitKey(0);
return 0;
}


图像的腐蚀

腐蚀,即用图像中暗色部分“腐蚀”掉图像中的高亮部分。

#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
using namespace cv;

int main(){

Mat srcImage = imread("/Users/YWY/Pictures/house.jpg");
imshow("Original Image", srcImage);

//定义一个指定形状和大小的结构元素(内核矩阵 )
//MORPH_RECT矩形,MORPH_CROSS十字,MORPH_ELLIPSE 椭圆
Mat element = getStructuringElement(MORPH_RECT, Size(15,15));
Mat dstImage;
//腐蚀操作
erode(srcImage, dstImage, element);

imshow("After eroding", dstImage);

waitKey(0);
return 0;
}


图像的模糊

#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
using namespace cv;

int main(){

Mat srcImage = imread("/Users/YWY/Pictures/house.jpg");
imshow("Original Image", srcImage);

Mat dstImage;
//均值滤波(模糊)操作
blur(srcImage, dstImage, Size(7,7));

imshow("After bluring", dstImage);
waitKey(0);
return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  opencv