博客
关于我
opencv9-膨胀和腐蚀
阅读量:800 次
发布时间:2023-02-23

本文共 1666 字,大约阅读时间需要 5 分钟。

OpenCV 膨胀与腐蚀操作

膨胀和腐蚀是图像处理中的常见操作,常用于边缘检测和形状变化分析。以下是基于OpenCV的C++代码示例,展示了如何实现这些操作。

代码结构说明

#include 
#include
#include
#include
using namespace std;using namespace cv;

导入必要的库

  • opencv2/opencv.hpp:OpenCV库的核心头文件,包含基本图像处理功能。
  • opencv2/highgui/highgui.hpp:高级用户界面功能,用于创建和管理图像窗口。
  • iostream:标准输入输出流,用于打印文本信息。
  • math.h:用于数学函数,包括随机数生成和基本运算。

函数定义

void CallBack_Demo(int, void*);

主函数

int main(){    src = imread("E:\\vs2015\\opencvstudy\\3.jpg", 1);    if (src.empty()){        cout << "could not load the src image!" << endl;        return -1;    }    char *input_title = "input Image";    imshow(input_title, src);    namedWindow(output_title, 1);    createTrackbar("Size:", output_title, &element_size, max_size, CallBack_Demo);    CallBack_Demo(0, 0);    waitKey(0);    return 0;}

回调函数

void CallBack_Demo(int, void*){    int s = element_size * 2 + 1;    Mat structureElement = getStructuringElement(MORPH_RECT, Size(s,s), Point(-1, -1));    dilate(src, dst_dilate, structureElement, Point(-1, -1), 1);    //erode(src, dst_erode, structureElement, Point(-1, -1), 1);    imshow(output_title, dst_dilate);    //imshow(output_title, dst_erode);    return;}

代码解释

  • 导入库:首先导入了必要的OpenCV库和标准库,确保程序能够正常编译和运行。

  • 读取图像:使用imread函数读取图像文件,图像以灰度格式加载。

  • 创建窗口:使用imshow函数创建输入图像窗口,并设置输出图像窗口。

  • 创建滑动条:使用createTrackbar函数创建滑动条,用户可以通过滑动条调整膨胀/腐蚀的尺寸。

  • 回调函数:当滑动条调整时,回调函数被调用,执行膨胀操作。使用getStructuringElement创建结构元素,dilate函数进行膨胀操作。

  • 膨胀与腐蚀的原理

    • 膨胀:膨胀操作会使图像中的每个像素扩展成更大的区域,用于增强图像的边缘。膨胀的核心原理是求最大值,即白色部分增多。

    • 腐蚀:腐蚀操作会使图像中的每个像素收缩成更小的区域,通常用于去除图像中的小噪声。腐蚀的核心原理是求最小值,即黑色部分增多。

    参数说明

    • element_size:结构元素的大小,决定了膨胀/腐蚀的程度。值越大,效果越明显。
    • max_size:结构元素的最大值,确保结构元素的合理范围。

    通过调整这些参数,可以在图像中实现不同的膨胀和腐蚀效果。

    转载地址:http://gmsfk.baihongyu.com/

    你可能感兴趣的文章
    Redis以及Redis的php扩展安装
    查看>>
    PHP-算法-最少比较次数获取最大值最小值
    查看>>
    php-约瑟夫问题
    查看>>
    Redis从库不能同步报Can’t save in background: fork: Cannot allocate memory错误
    查看>>
    Redis从入门到精通|干货篇
    查看>>
    php.ini maxfileuploads,细说PHP高洛峰文件上传类源文件
    查看>>
    php.ini中常见的配置信息选项
    查看>>
    php.ini配置中有10处设置不当,会使网站存在安全问题
    查看>>
    php/jsp/asp的区别
    查看>>
    php20个主流框架
    查看>>
    php301到https,虚拟主机设置自动301跳转到HTTPS
    查看>>
    php5 apache 配置
    查看>>
    php5 升级 php7 版本遇到的问题处理方法总结
    查看>>
    PHP5.3.3安装Mcrypt扩展
    查看>>
    PHP5.4 + IIS + Win2008 R2 配置
    查看>>
    PHP5.4 pfsocketopen函数判断sock是否存活的bug(由memcached引起)
    查看>>
    Redis从入门到精通
    查看>>
    PHP5.6.x编译报错:Don't know how to define struct flock on this system, set --enable-opcache=no
    查看>>
    php5ts.dll 下载_php5ts.dll下载
    查看>>
    php7
    查看>>