OpenCV(三十一):形态学操作

​​​​​​1.形态学操作

OpenCV 提供了丰富的函数来进行形态学操作,包括腐蚀、膨胀、开运算、闭运算等。下面介绍一些常用的 OpenCV 形态学操作函数:

  1. 腐蚀操作(Erosion): erode(src, dst, kernel, anchor, iterations, borderType, borderValue) 该函数对输入图像中的前景区域进行腐蚀操作,通过用结构元素中的最小值替换区域中的像素值来收缩前景区域。

  2. 膨胀操作(Dilation): dilate(src, dst, kernel, anchor, iterations, borderType, borderValue) 该函数对输入图像中的前景区域进行膨胀操作,通过用结构元素中的最大值替换区域中的像素值来扩展前景区域。

  3. 开运算(Opening): morphologyEx(src, dst, MORPH_OPEN, kernel, anchor, iterations, borderType, borderValue) 开运算是先对图像进行腐蚀操作,然后再进行膨胀操作。这个操作可以去除小的噪声,并平滑图像的边界。

  4. 闭运算(Closing): morphologyEx(src, dst, MORPH_CLOSE, kernel, anchor, iterations, borderType, borderValue) 闭运算是先对图像进行膨胀操作,然后再进行腐蚀操作。这个操作可以填充小的空洞,并平滑图像的边界。

  5. 梯度运算(Gradient): morphologyEx(src, dst, MORPH_GRADIENT, kernel, anchor, iterations, borderType, borderValue) 梯度运算可以通过对输入图像的膨胀和腐蚀结果之差来突出显示边缘。

  6. 顶帽运算(Top Hat): morphologyEx(src, dst, MORPH_TOPHAT, kernel, anchor, iterations, borderType, borderValue) 顶帽运算可以通过对输入图像和开运算结果之差来突出显示边缘和细节。

  7. 黑帽运算(Black Hat): morphologyEx(src, dst, MORPH_BLACKHAT, kernel, anchor, iterations, borderType, borderValue) 黑帽运算可以通过对闭运算结果和输入图像之差来突出显示边缘和细节。

以上函数中,src 是输入图像,dst 是输出图像,kernel 是结构元素,anchor 是结构元素的锚点位置,iterations 是迭代次数,borderType 是边界像素处理方式,borderValue 是边界像素的值。

2.相关函数morphologyEx()

morphologyEx() 是 OpenCV 库中用于形态学操作的函数之一。它可以执行包括腐蚀、膨胀、开运算、闭运算等一系列形态学操作。该函数的原型如下:

void morphologyEx(

InputArray src,

OutputArray dst,

int op,

InputArray kernel,

Point anchor = Point(-1,-1),

int iterations = 1,

int borderType = BORDER_CONSTANT,

const Scalar& borderValue = morphologyDefaultBorderValue()

);

该函数的参数包括:

  • src:输入图像或图像数组。

  • dst:输出图像或图像数组。

  • op:指定形态学操作的类型。

  • kernel:结构元素(核)用于形态学操作。

  • anchor:结构元素中心的位置,默认为(-1, -1)表示结构元素的中心位置为核的中心。

  • iterations:执行形态学操作的迭代次数,默认为1。

  • borderType:边界像素处理方式,默认为BORDER_CONSTANT。

  • borderValue:当borderType为BORDER_CONSTANT时指定边界像素的值,默认为morphologyDefaultBorderValue()。

其中形态学操作的类型:

3.示例代码:

复制代码
void image_morphologyEx(Mat image){
    Mat gray;
    cvtColor(image,gray,COLOR_BGR2GRAY);//灰度化
    threshold(gray,gray,80,255,THRESH_BINARY);
    //5×5矩阵结构元素
    Mat kernel= getStructuringElement(0,Size(5,5));
    Mat open,close,gradient,tophat,blackhat;
    //对图像进行开运算
    morphologyEx(gray,open,MORPH_OPEN,kernel);
    //对图像进行闭运算
    morphologyEx(gray,close,MORPH_CLOSE,kernel);
    //对图像进行梯度运算
    morphologyEx(gray,gradient,MORPH_GRADIENT,kernel);
    //对图像进行顶帽运算
    morphologyEx(gray,tophat,MORPH_TOPHAT,kernel);
    //对图像进行黑帽运算
    morphologyEx(gray,blackhat,MORPH_BLACKHAT,kernel);
  
}
相关推荐
m0_734571763 小时前
深入理解人工智能 chatGPT的软件架构
人工智能
飞塔老梅子3 小时前
09. Codex 节省Token ❀ 老梅子学AI
人工智能·ai·token·模型·codex
HyperAI超神经3 小时前
扰动实验+迁移学习,MIT团队推出IRIS,用「指纹」重建单细胞信号传导历史
人工智能·深度学习·机器学习·迁移学习
前沿在线3 小时前
启元机器人亮相外滩大会,探索个人机器人健康服务新场景
人工智能·ai·大模型
haishikeji696_3 小时前
现成无人机管理系统源码|支持私有化部署、二次开发、政企投标、自动机库对接
人工智能·无人机·低空经济·无人机管理系统·飞控管理系统
汇智信科4 小时前
煤矿视频智能分析系统:基于 AI 视觉实现井下安全隐患实时监测与闭环管控
人工智能
h78813944 小时前
录音容易纪要难?录音转文字 + AI 纪要实测,提升会议效率
人工智能·powerpoint
涛思数据(TDengine)4 小时前
从“极速算“到“知识沉淀“:工业 AI 实战直播(十三、十四期)
人工智能·时序数据库·tdengine·工业互联网·工业ai
Summer-Bright4 小时前
深度 | OpenAI 联合三星造芯:从模型层向底层算力延伸,AI 算力供应链开始重新洗牌
人工智能·ai·openai·芯片