OpenCV学习笔记 图像腐蚀模糊和边缘检测

//-------------【头文件/命名空间包含部分】---------------
//描述:包含程序使用的头文件喝命名空间
//-------------------------------------------------------

#include 
#include //opencv highgui模块头文件
#include //opencv 图像处理头文件
using namespace cv;//包含cv命名空间

int main()
{
	Mat srcImage = imread("pic.jpg");//载入图像
	imshow("【原始图】", srcImage);//显示图像
	//腐蚀操作
	Mat element = getStructuringElement(MORPH_RECT, Size(15, 15));
	Mat dstImage;
	erode(srcImage, dstImage, element);
	//显示效果图
	imshow("【效果图】腐蚀操作", dstImage);
        
        Mat dstImage1;
	blur(srcImage, dstImage1, Size(7, 7));
	imshow("【效果图】均值滤波", dstImage1);
	waitKey(0);//等待任意键按下

	return 0;
}



OpenCV学习笔记 图像腐蚀模糊和边缘检测_第1张图片

OpenCV学习笔记 图像腐蚀模糊和边缘检测_第2张图片

总结:

getStructuringElement函数会返回指定形状和尺寸的结构元素。

这个函数的第一个参数表示内核的形状,有三种形状可以选择。

矩形:MORPH_RECT;

交叉形:MORPH_CORSS;

椭圆形:MORPH_ELLIPSE;

第二和第三个参数分别是内核的尺寸以及锚点的位置。一般在调用erode以及dilate函数之前,先定义一个Mat类型的变量来获得

getStructuringElement函数的返回值。对于锚点的位置,有默认值Point(-1,-1),表示锚点位于中心点。element形状唯一依赖锚点位置,其他情况下,锚点只是影响了形态学运算结果的偏移。

//-------------【头文件/命名空间包含部分】---------------
//描述:包含程序使用的头文件喝命名空间
//-------------------------------------------------------

#include 
#include //opencv highgui模块头文件
#include //opencv 图像处理头文件
using namespace cv;//包含cv命名空间
//---------------【主函数】------------------------------
//描述:控制应用程序所使用的入口函数
//-------------------------------------------------------
int main()
{
	Mat srcImage = imread("pic.jpg");//载入图像
	imshow("【原始图】", srcImage);//显示图像
	Mat dstImage, edge, grayImage;//参数定义

	//【1】创建与src同类型和大小的矩阵
	dstImage.create(srcImage.size(), srcImage.type());
	//【2】将原图转换为灰度图
	cvtColor(srcImage, grayImage, COLOR_BGR2GRAY);
	//【3】使用3*3内核来降噪
	blur(grayImage, edge, Size(3, 3));
	//【4】运行canny算子
	Canny(edge, edge, 3, 9, 3);
	//【5】显示效果图
	imshow("【效果图】canny边缘检测",edge);

	waitKey(0);//等待任意键按下

	return 0;
}


OpenCV学习笔记 图像腐蚀模糊和边缘检测_第3张图片

你可能感兴趣的:(OpenCV)