OpenCV(三十):图像膨胀

1.图像膨胀原理

图像膨胀的原理是将一个结构元素(也称为核或模板)在图像上滑动,并将其与图像中对应位置的像素进行比较。如果结构元素的所有像素与图像中对应位置的像素都匹配,那么该位置的像素值保持不变。如果结构元素的任何一个像素与图像中对应位置的像素不匹配,那么 图像中对应位置的像素被置为1,从而改变了图像的形状和结构。

2.结构元素生成函数getStructuringElement()

Mat cv::getStructuringElement ( int shape,

Size ksize,

Point anchor = point(-1,-1)

)

  • shape:结构元素的种类。
  • ksize:结构元素的尺寸大小。
  • anchor:中心点的位置,默认参数为结构元素的几何中心点。

其中结构元素的种类有:

3.图像膨胀操作函数dilate()

void cv::dilate ( InputArray src,

OutputArray dst,

InputArray kernel,

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

int iterations = 1,

int borderType = BORDER_CONSTANT,

const Scalar & borderValue = morphologyDefaultBorderValue()

)

  • src: 输入的待膨胀图像,图像的通道数可以是任意的,但是图像的数据类型必须是CV_8U,CV_16U,CV_16S,CV_32F或CV_64F之一。
  • dst:腐蚀后的输出图像,与输入图像src具有相同的尺寸和数据类型。
  • kernel:用于膨胀操作的结构元素,可以自己输入,也可以用getStructuringElement0函数生成
  • anchor:中心点在结构元素中的位置,默认参数为结构元素的几何中心点
  • iterations:腐蚀的次数
  • borderType:像素外推法选择标志
  • borderValue:边界不变的边界值。

4.示例代码:

复制代码
//图像膨胀
void image_dilate(Mat image){
    Mat gray;
    cvtColor(image,gray,COLOR_BGR2GRAY);//灰度化
    Mat dilate_black1,dilate_black2;
    //黑背景图像膨胀
    Mat struct1= getStructuringElement(0,Size(3,3));//矩形结构元素
    Mat struct2= getStructuringElement(1,Size(3,3));//十字结构元素

    dilate(gray,dilate_black1,struct1);//膨胀
    dilate(gray,dilate_black2,struct2);
   
}
相关推荐
硅谷秋水6 小时前
CommitFlow:面向长时程机器人操作 VLA 执行的语义承诺验证与局部修正
机器学习·计算机视觉·语言模型·机器人
建筑工程企业管理系统6 小时前
工程进度统计管理系统自动化汇总数据,解决施工企业手工对账误差难题
大数据·人工智能·自动化
唠点键盘之外的7 小时前
27 存量系统接大模型:旁挂一个 AI 微服务,老架构一行不改
人工智能·微服务·架构
kaixin_啊啊7 小时前
【用于更准确 G×E 基因组预测的大规模作物数据集与基于深度学习的多模态融合框架】论文学习
人工智能·深度学习·学习
GOWIN革文品牌咨询7 小时前
工业测量品牌系统化搭建指南:从内容架构到长期治理的全流程
大数据·人工智能·架构
xier_ran7 小时前
【infra之路】AI 编译器学习笔记(六):重拾 C++——lambda 与 MLIR 中的回调
c++·笔记·学习
拿本唠嗑AI研究7 小时前
本体工程实战指南:从建模到可维护的完整落地路径
java·人工智能·python·jena·ontology
deepseek237 小时前
AI 模型隐藏任意能力拆解:把加密神经网络塞进宿主权重,能力评估为什么在密码学上抓不到
人工智能·深度学习·神经网络·密码学·模型安全
揽秀亭长8 小时前
从音频到五线谱,自动扒谱的完整技术流程
人工智能
Smoothcloud润云8 小时前
PyTorch推理服务模型热切换与失败回滚实战:降低版本更新中断
服务器·人工智能·pytorch·python·深度学习·gpu