Opencv学习笔记(四)形态学运算

一.腐蚀与膨胀

腐蚀和膨胀是形态学运算中的基本操作,也是后续要介绍的运算的基础,首先腐蚀与膨胀从字面意义上来理解,指的是对于图片中灰度较高的部分(多通道独立处理)扩张或者收缩,即经过操作后亮域变少\多。实现方法是通过窗函数在原图上滑动,将卷积核(可以是任意大小、形状)范围内最大值(膨胀)或者最小值(腐蚀)作为锚点的像素值
Opencv的膨胀函数原型如下:

dilate( InputArray src, OutputArray dst, InputArray kernel,
Point anchor = Point(-1,-1), int iterations = 1,
int borderType = BORDER_CONSTANT,
const Scalar& borderValue = morphologyDefaultBorderValue() );

第一、二个参数为输入输出图片,二者应该具有相同的格式,且深度应该为CV_8U、C

### OpenCV C++ 学习教程概述 OpenCV 是一个强大的开源计算机视觉库,支持多种编程语言,其中 C++ 是其主要开发语言之一。以下是关于如何通过 OpenCV 的 C++ 功能进行学习的相关资源知识点。 #### 图像基本操作 图像的基本读取、显示以及保存功能是 OpenCV 中最基础的部分。可以通过 `imread` 函数加载图片,并利用 `imshow` `imwrite` 来展示存储处理后的结果[^1]。 ```cpp #include <opencv2/opencv.hpp> using namespace cv; int main() { Mat image = imread("example.jpg"); if (image.empty()) return -1; namedWindow("Example", WINDOW_AUTOSIZE); imshow("Example", image); waitKey(0); // Wait for key press imwrite("output_image.png", image); } ``` #### 图像融合技术 为了实现两幅图像的平滑过渡或者叠加效果,可以使用 `addWeighted()` 方法完成加权平均混合的操作[^2]。此方法接受两个输入矩阵及其权重参数 α β,还有一个偏移量 γ。 ```cpp Mat blendedImage; double alpha = 0.7; double beta = 0.3; double gamma = 0.0; addWeighted(src1, alpha, src2, beta, gamma, blendedImage); ``` #### 腐蚀与膨胀操作 形态学中的腐蚀(Erosion)膨胀(Dilation)用于改变二值化图像中对象形状大小。这些变换通常依赖于结构元素(Kernel)。创建自定义核可通过调用 `getStructuringElement` 完成[^3]。 ```cpp Mat kernel = getStructuringElement(MORPH_ELLIPSE, Size(5, 5)); erode(image, erodedImage, kernel); dilate(erodedImage, dilatedImage, kernel); ``` #### 形态学高级应用——顶帽黑帽运算 除了简单的腐蚀膨胀外,还有更复杂的形态学转换如顶帽(Tophat)黑帽(Blackhat),分别提取亮区域细节或暗区域特征[^4]。具体表达式如下所示: - **TopHat**: \(dst = src - open(src)\) - **BlackHat**: \(dst = close(src) - src\) ```cpp morphologyEx(image, topHatResult, MORPH_TOPHAT, kernel); morphologyEx(image, blackHatResult, MORPH_BLACKHAT, kernel); ``` 以上内容涵盖了从入门到深入理解 OpenCV 库所需掌握的核心概念技术要点。希望对你有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值