OpenCV:形态学处理

本文详细介绍了OpenCV库中用于图像处理的形态学操作,包括腐蚀、膨胀、开运算、闭运算、形态学梯度、顶帽和黑帽。通过示例代码展示了这些操作如何实现,并探讨了它们在图像分析中的应用。同时,还讨论了结构元素的不同类型,如矩形、椭圆和十字结构元素,以及它们如何影响形态学操作的结果。
摘要由CSDN通过智能技术生成

目录

1.腐蚀

2.膨胀

3.开运算-先腐蚀再膨胀

4.闭运算-先膨胀再腐蚀

 5.形态学梯度

6.顶帽

 7.黑帽

代码1:

8.结构元素


腐蚀cv::erode()
膨胀cv::dilate()
开运算cv::morphologyEx(in,out,MORPH_OPEN,...)
闭运算cv::morphologyEx(in,out,MORPH_CLOSE,...)
形态学梯度cv::morphologyEx(in, out, MORPH_GRADIENT, ...);
顶帽cv::morphologyEx(in, out, MORPH_TOPHAT, ...)
黑帽cv::morphologyEx(in, out, MORPH_BLACKHAT, ...)
结构元素cv::Mat=cv::getStructuringElement()

1.腐蚀

2.膨胀

3.开运算-先腐蚀再膨胀

4.闭运算-先膨胀再腐蚀

 5.形态学梯度

这是图像膨胀和腐蚀之间的区别,结果看起来像对象的轮廓。

6.顶帽

输入图像和图像开运算之差

A

 7.黑帽

输入图像和图像闭运算之差

代码1:

#include<opencv2/opencv.hpp>
#include<iostream>
#include<imgproc.hpp>
using namespace cv;
using namespace std;

int main(int argc, char** argv) {
	Mat image = imread("C:/Users/YY/Pictures/Saved Pictures/A.bmp");
	Mat out;
	Mat k = (Mat_<double>(3, 3) << 1, 1, 1, 1, 1, 1, 1, 1, 1);
	erode(image, out, k);
	dilate(image, out, k);
	morphologyEx(image, out, MORPH_OPEN, k);
	morphologyEx(image, out, MORPH_CLOSE, k);
	morphologyEx(image, out, MORPH_GRADIENT, k);
	morphologyEx(image, out, MORPH_TOPHAT, k);
	morphologyEx(image, out, MORPH_BLACKHAT, k);
	imshow("显示", out);
	imshow("原图", image);
	waitKey(0);
	destroyAllWindows();
	return 0;
}

8.结构元素

int main(int argc, char** argv) {
	Mat out;
	//矩形内核
	out = getStructuringElement(MORPH_RECT, Size(5, 5));
	cout << out << endl;
	//椭圆内核
	out = getStructuringElement(MORPH_ELLIPSE, Size(5, 5));
	cout << out << endl;
	//十字内核
	out = getStructuringElement(MORPH_CROSS, Size(5, 5));
	cout << out << endl;
	return 0;
}
矩形
[  1,   1,   1,   1,   1;
   1,   1,   1,   1,   1;
   1,   1,   1,   1,   1;
   1,   1,   1,   1,   1;
   1,   1,   1,   1,   1]
椭圆
[  0,   0,   1,   0,   0;
   1,   1,   1,   1,   1;
   1,   1,   1,   1,   1;
   1,   1,   1,   1,   1;
   0,   0,   1,   0,   0]
十字
[  0,   0,   1,   0,   0;
   0,   0,   1,   0,   0;
   1,   1,   1,   1,   1;
   0,   0,   1,   0,   0;
   0,   0,   1,   0,   0]

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值