opencv morphologyEX 图像数学形态学
来源:互联网 发布:中信网络 财新网 编辑:程序博客网 时间:2024/05/16 17:33
#include<opencv2/opencv.hpp>
#include<opencv2/core/core.hpp>
#include<opencv2/imgproc/imgproc.hpp>
#include<iostream>
using namespace cv;
using namespace std;
Mat g_srcImage,g_dstImage;
int g_nTrackbarNumber = 0;
int g_nStructELementSize = 3;
enum opt
{
OPEN = 0,//开运算
CLOSE, //闭运算
GRADIENT, //形态学梯度
TOPHAT,//定帽
BLACKHAT,//黑帽
ERODE, //腐蚀
DILATE //膨胀
};
void Process();
void on_TrcackBarNUmChange(int ,void*);
void on_ElementSizeChange(int,void*);
int main()
{
g_srcImage = imread("1.jpg");
if(!g_srcImage.data)
{
printf("read jpg error\n");
return -1;
}
namedWindow("yuantu",WINDOW_AUTOSIZE);
imshow("yuantu",g_srcImage);
namedWindow("morphologyEx", WINDOW_AUTOSIZE);
createTrackbar("g_nTrackbarNumber","morphologyEx",&g_nTrackbarNumber,6,on_TrcackBarNUmChange);
while(char(waitKey(1)) != 'q')
{}
}
void Process()
{
int op;
switch(g_nTrackbarNumber)
{
case OPEN:
op = MORPH_OPEN;
break;
case CLOSE:
op = MORPH_CLOSE;
break;
case GRADIENT:
op = MORPH_GRADIENT;
break;
case TOPHAT:
op = MORPH_TOPHAT;
break;
case BLACKHAT:
op = MORPH_BLACKHAT;
break;
case ERODE:
op = MORPH_ERODE;
break;
case DILATE:
op = MORPH_DILATE;
default:
op = MORPH_OPEN;
}
Mat element = getStructuringElement(MORPH_RECT,Size(g_nStructELementSize*2+1,g_nStructELementSize*2+1),Point(g_nStructELementSize,g_nStructELementSize));
morphologyEx(g_srcImage,g_dstImage,op,element);
imshow("morphologyEx",g_dstImage);
}
void on_TrcackBarNUmChange(int,void *)
{
Process();
}
void on_ElementSizeChange(int,void *)
{
Process();
#include<opencv2/core/core.hpp>
#include<opencv2/imgproc/imgproc.hpp>
#include<iostream>
using namespace cv;
using namespace std;
Mat g_srcImage,g_dstImage;
int g_nTrackbarNumber = 0;
int g_nStructELementSize = 3;
enum opt
{
OPEN = 0,//开运算
CLOSE, //闭运算
GRADIENT, //形态学梯度
TOPHAT,//定帽
BLACKHAT,//黑帽
ERODE, //腐蚀
DILATE //膨胀
};
void Process();
void on_TrcackBarNUmChange(int ,void*);
void on_ElementSizeChange(int,void*);
int main()
{
g_srcImage = imread("1.jpg");
if(!g_srcImage.data)
{
printf("read jpg error\n");
return -1;
}
namedWindow("yuantu",WINDOW_AUTOSIZE);
imshow("yuantu",g_srcImage);
namedWindow("morphologyEx", WINDOW_AUTOSIZE);
createTrackbar("g_nTrackbarNumber","morphologyEx",&g_nTrackbarNumber,6,on_TrcackBarNUmChange);
while(char(waitKey(1)) != 'q')
{}
}
void Process()
{
int op;
switch(g_nTrackbarNumber)
{
case OPEN:
op = MORPH_OPEN;
break;
case CLOSE:
op = MORPH_CLOSE;
break;
case GRADIENT:
op = MORPH_GRADIENT;
break;
case TOPHAT:
op = MORPH_TOPHAT;
break;
case BLACKHAT:
op = MORPH_BLACKHAT;
break;
case ERODE:
op = MORPH_ERODE;
break;
case DILATE:
op = MORPH_DILATE;
default:
op = MORPH_OPEN;
}
Mat element = getStructuringElement(MORPH_RECT,Size(g_nStructELementSize*2+1,g_nStructELementSize*2+1),Point(g_nStructELementSize,g_nStructELementSize));
morphologyEx(g_srcImage,g_dstImage,op,element);
imshow("morphologyEx",g_dstImage);
}
void on_TrcackBarNUmChange(int,void *)
{
Process();
}
void on_ElementSizeChange(int,void *)
{
Process();
}
运行图片如下
阅读全文
0 0
- opencv morphologyEX 图像数学形态学
- OpenCV-形态学处理-morphologyEx
- opencv 形态学变换 morphologyEx函数
- opencv形态学操作函数morphologyEx
- OPENCV入门教程十六:morphologyEx形态学开运算
- OPENCV入门教程十七:morphologyEx形态学闭运算
- 用morphologyEx进行图像形态学开运算用法示例
- 【OpenCV图像处理】十八、数学形态学方法(上)
- 【OpenCV图像处理】十九、数学形态学方法(中)
- 【OpenCV图像处理】二十、数学形态学方法(下)
- 图像数学形态学变换
- 图像数学形态学处理
- 图像处理----数学形态学
- openCV 形态学图像处理
- opencv图像形态学处理
- opencv:图像形态学
- opencv 图像形态学转换
- 数学形态学及图像压缩
- wglUseFontBitmaps/wglUseFontOutlines
- bootstrap hello word
- 我想学编程
- 改进版的冒泡排序(O(n2))
- Storm详解
- opencv morphologyEX 图像数学形态学
- 正则表达式-基础
- 进程和线程的区别和联系
- C语言:文件操作之单词统计
- 3.3(4)
- Css样式动画
- JavaScript cookie操作实现点赞功能
- C语言:点餐系统
- qt4笔记