Qt creator5.7 OpenCV249之形态学处理(含源码下载)
形态学处理-morphologyEx 运算
void cv::morphologyEx(
InputArray src,
OutputArray dst,
int op,
InputArray Kernel,
Point anchor=Point(-1,-1),
int iteration=1,
int borderType=BORDER_CONSTANT,
const Scalar& borderValue=morphologyDefaultBorderValue()
)
这里面的op
op-操作类型,各种形态学运算的操作规则:将腐蚀和膨化进行结合得到
下面给出一个表
下面给出关于形态学的代码
void MainWindow::on_erode_triggered()
{//定义形状int morph_elem=cv::MORPH_RECT;//定义大小int morph_size=3;//调用getStructuringElementcv::Mat element=cv::getStructuringElement(morph_elem,cv::Size(2*morph_size+1,2*morph_size+1),cv::Point(morph_size,morph_size));//调用morphologyEx函数cv::morphologyEx(srcImage,dstImage,cv::MORPH_ERODE,element);//显示img=QImage((const unsigned char*)(dstImage.data),dstImage.cols,dstImage.rows,dstImage.cols*dstImage.channels(),QImage::Format_RGB888);img=img.scaled(ui->label_2->size());ui->label_2->setPixmap(QPixmap::fromImage(img));
}void MainWindow::on_dilate_triggered()
{//定义形状int morph_elem=cv::MORPH_RECT;//定义大小int morph_size=3;//调用getStructuringElementcv::Mat element=cv::getStructuringElement(morph_elem,cv::Size(2*morph_size+1,2*morph_size+1),cv::Point(morph_size,morph_size));//调用morphologyEx函数cv::morphologyEx(srcImage,dstImage,cv::MORPH_DILATE,element);//显示img=QImage((const unsigned char*)(dstImage.data),dstImage.cols,dstImage.rows,dstImage.cols*dstImage.channels(),QImage::Format_RGB888);img=img.scaled(ui->label_2->size());ui->label_2->setPixmap(QPixmap::fromImage(img));
}void MainWindow::on_open_triggered()
{//定义形状int morph_elem=cv::MORPH_RECT;//定义大小int morph_size=3;//调用getStructuringElementcv::Mat element=cv::getStructuringElement(morph_elem,cv::Size(2*morph_size+1,2*morph_size+1),cv::Point(morph_size,morph_size));//调用morphologyEx函数cv::morphologyEx(srcImage,dstImage,cv::MORPH_OPEN,element);//显示img=QImage((const unsigned char*)(dstImage.data),dstImage.cols,dstImage.rows,dstImage.cols*dstImage.channels(),QImage::Format_RGB888);img=img.scaled(ui->label_2->size());ui->label_2->setPixmap(QPixmap::fromImage(img));
}void MainWindow::on_close_triggered()
{//定义形状int morph_elem=cv::MORPH_RECT;//定义大小int morph_size=3;//调用getStructuringElementcv::Mat element=cv::getStructuringElement(morph_elem,cv::Size(2*morph_size+1,2*morph_size+1),cv::Point(morph_size,morph_size));//调用morphologyEx函数cv::morphologyEx(srcImage,dstImage,cv::MORPH_CLOSE,element);//显示img=QImage((const unsigned char*)(dstImage.data),dstImage.cols,dstImage.rows,dstImage.cols*dstImage.channels(),QImage::Format_RGB888);img=img.scaled(ui->label_2->size());ui->label_2->setPixmap(QPixmap::fromImage(img));
}void MainWindow::on_gradient_triggered()
{//定义形状int morph_elem=cv::MORPH_RECT;//定义大小int morph_size=3;//调用getStructuringElementcv::Mat element=cv::getStructuringElement(morph_elem,cv::Size(2*morph_size+1,2*morph_size+1),cv::Point(morph_size,morph_size));//调用morphologyEx函数cv::morphologyEx(srcImage,dstImage,cv::MORPH_GRADIENT,element);//显示img=QImage((const unsigned char*)(dstImage.data),dstImage.cols,dstImage.rows,dstImage.cols*dstImage.channels(),QImage::Format_RGB888);img=img.scaled(ui->label_2->size());ui->label_2->setPixmap(QPixmap::fromImage(img));
}void MainWindow::on_tophat_triggered()
{//定义形状int morph_elem=cv::MORPH_RECT;//定义大小int morph_size=3;//调用getStructuringElementcv::Mat element=cv::getStructuringElement(morph_elem,cv::Size(2*morph_size+1,2*morph_size+1),cv::Point(morph_size,morph_size));//调用morphologyEx函数cv::morphologyEx(srcImage,dstImage,cv::MORPH_TOPHAT,element);//显示img=QImage((const unsigned char*)(dstImage.data),dstImage.cols,dstImage.rows,dstImage.cols*dstImage.channels(),QImage::Format_RGB888);img=img.scaled(ui->label_2->size());ui->label_2->setPixmap(QPixmap::fromImage(img));
}void MainWindow::on_blackhat_triggered()
{//定义形状int morph_elem=cv::MORPH_RECT;//定义大小int morph_size=3;//调用getStructuringElementcv::Mat element=cv::getStructuringElement(morph_elem,cv::Size(2*morph_size+1,2*morph_size+1),cv::Point(morph_size,morph_size));//调用morphologyEx函数cv::morphologyEx(srcImage,dstImage,cv::MORPH_BLACKHAT,element);//显示img=QImage((const unsigned char*)(dstImage.data),dstImage.cols,dstImage.rows,dstImage.cols*dstImage.channels(),QImage::Format_RGB888);img=img.scaled(ui->label_2->size());ui->label_2->setPixmap(QPixmap::fromImage(img));
}
下面给出程序源码打包下载:
http://download.csdn.net/detail/qq78442761/9735279
下面是程序运行
下面是开运算和形态学阶梯
Qt creator5.7 OpenCV249之形态学处理(含源码下载)相关推荐
- Qt creator5.7 OpenCV249之图片旋转(含源码下载)
下面先来介绍OpenCV关于图像选择的函数 void cv::flip( InputArray src OutputArray dst, int flipCode) src-是要处理的原始图像, ds ...
- Qt creator5.7 OpenCV249之图片腐化(含源码下载)
首先介绍几个OpenCV的函数 void cv::erode( InputArray src, OutputArray dst, InputArray kernel, Point anchor=Poi ...
- Qt creator5.7 OpenCV249之resize函数(含源码下载)
函数 void cv::resize( InputArray src, OutputArray dst, Size dsize, double fx=0, double fy=0, int inter ...
- Qt creator5.7 OpenCV249之pyrDown函数(含源码下载)
函数: void cv::pyrDown( InputArray src, OutputArray dst, const Size& dstsize=Size(), int borderTyp ...
- Qt creator5.7 OpenCV249之pyrUp函数(含源码下载)
void cv::pyrUp( InputArray src, OutputArray dst, const Size& dstsize=Size(), int borderType=BORD ...
- Qt creator5.7 OpenCV249之双边滤波(含源码下载)
原理如下: 函数 void cv::bilateralFilter( InputArray src, OutputArray dst, int d, double sigmaColor, double ...
- Qt creator5.7 OpenCV249之中值滤波(含源码下载)
首先介绍下中值滤波的原理 函数 void cv::medianBulr( InputArray src, OutputArray dst, int Ksize) 下面是程序代码 void Widget ...
- Qt creator5.7 OpenCV249之高斯滤波(含源码下载)
函数 void cv::GaussianBlut( InputArray src, OutputArray dst, Size ksize, double sigmaX, double sigmaY= ...
- Qt creator5.7 OpenCV249之方框滤波(含源码下载)
函数 void cv::boxFilter( InputArray src, OutputArray dst, int ddepth, Size ksize, Point anchor=point(- ...
最新文章
- 统计学习方法:朴素贝叶斯
- 安装HCL遇到的问题
- 科大星云诗社动态20210522
- MyBatis Plus Generator——基于Velocity的Controller参考模板(集成MyBatis Plus、Swagger2、自封装Response、分页)
- [转载].怎样在有限状态机中延时
- ASP.NET Core 1.0开发Web API程序
- Ubuntu配置IPFS的环境
- 李洪强iOS开发之FMDB线程安全的用法
- 解决css引用字体跨域问题
- linux编程排序,Linux下简单的c编程——选择法排序
- Intel、AMD和Arm 告警:注意新的推断执行CPU漏洞!
- Struts2(接受表单参数)请求数据自动封装和数据类型转换
- qmc转码_QQ音乐qmc3格式转换器免费版
- Linux Command diff 文件比较
- 系统没有java控制面板,手把手教你解答win7系统打开java控制面板的解决教程
- 为什么那些美事没有实现---生活中小事有感
- Base64系列第一篇 Base64介绍
- OpenStack 虚拟机冷/热迁移功能实践与流程分析
- Python离线翻译
- boostrap老黄历代码的实现
热门文章
- 我编程很渣,但我就是喜欢编程,我该怎么做?放弃还是继续坚持?
- Ubuntu下安装和配置Apache及Apache2
- 展望2015把C++版本的掼蛋程序写好
- FTP常用的73个基本用法:
- 无需破解,Python这个神器帮你免费获取资源,赶紧收藏!
- 你还在用自己的电脑跑python程序?大佬都这么玩,绝对意想不到
- 对老赖 绝不要忍 !一位美女程序媛的讨薪经历...
- 第六节:用audio标签打造一个属于自己的HTML5音乐播放器
- thinkphp5范围查询_ThinkPHP 区间查询
- 4米乘以12米CAD图_CAD做钣金件展开的原理你知道吗?