#include <opencv2/opencv.hpp> //头文件
using namespace cv; //包含cv命名空间
int main( ){
Mat srcImage = imread("1.jpg"); // 【1】读入一张图片,载入图像
imshow("【原始图】",srcImage); // 【2】显示载入的图片
waitKey(0); // 【3】等待任意按键按下
return 0;
}
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
using namespace cv;
int main( ){
Mat srcImage = imread("1.jpg"); //载入原图
imshow("【原图】腐蚀操作", srcImage); //显示原图
Mat element = getStructuringElement(MORPH_RECT, Size(15, 15));//指定形状和尺寸的结构元素(内核矩阵)
Mat dstImage; //定义出图
erode(srcImage, dstImage, element); //进行腐蚀操作
imshow("【效果图】腐蚀操作", dstImage); //显示效果图
waitKey(0);//等待鼠标点击
return 0;
}
int main( ){
Mat srcImage=imread("1.jpg");//【1】载入原始图
imshow( "均值滤波【原图】", srcImage );//【2】显示原始图
Mat dstImage;//定义出图
blur( srcImage, dstImage, Size(7, 7));//【3】进行均值滤波操作,默认是均值
imshow( "均值滤波【效果图】" ,dstImage );//【4】显示效果图
waitKey( 0 );
}
int main( ){
Mat srcImage = imread("1.jpg"); //【0】载入原始图
imshow("【原始图】Canny边缘检测", srcImage); //显示原始图
Mat dstImage,edge,grayImage; //参数定义:原图,出图,中间图
dstImage.create( srcImage.size(), srcImage.type() );//【1】创建与src同类型和大小的矩阵(dst)
cvtColor( srcImage, grayImage, COLOR_BGR2GRAY ); //【2】将原图像转换为灰度图像
blur( grayImage, edge, Size(3,3) ); //【3】先用使用 3x3内核来降噪
Canny( edge, edge, 3, 9,3 ); //【4】运行Canny算子
imshow("【效果图】Canny边缘检测", edge); //【5】显示效果图
waitKey(0);
return 0;
}
int main( ){
VideoCapture capture("1.avi"); //【1】读入视频
while(1){ //【2】循环显示每一帧
Mat frame; //定义一个Mat变量,用于存储每一帧的图像
capture>>frame; //读取当前帧
imshow("读取视频",frame); //显示当前帧
waitKey(30); //延时30ms
}
return 0;
}
int main( ){
VideoCapture capture(0);//【1】从摄像头读入视频
while(1){ //【2】循环显示每一帧
Mat frame; //定义一个Mat变量,用于存储每一帧的图像
capture>>frame; //读取当前帧
imshow("读取视频",frame); //显示当前帧
waitKey(30); //延时30ms
}
return 0;
}
小结:erode,dilate,blur,canny