Emgucv图像处理二
Emgucv图像处理
阈值Threshold
private void button7_Click(object sender, EventArgs e){//阈值Mat scr = new Mat("001.jpg", Emgu.CV.CvEnum.ImreadModes.Grayscale);Mat dst = new Mat();CvInvoke.Threshold(scr, dst, 60, 255, ThresholdType.Binary);Mat dst1 = new Mat();CvInvoke.Threshold(scr, dst1, 60, 255, ThresholdType.BinaryInv);Mat dst2 = new Mat();CvInvoke.Threshold(scr, dst2, 60, 255, ThresholdType.Otsu);Mat dst3 = new Mat();CvInvoke.Threshold(scr, dst3, 10, 255, ThresholdType.ToZero);Mat dst4 = new Mat();CvInvoke.Threshold(scr, dst4, 10, 255, ThresholdType.ToZeroInv);Mat dst5 = new Mat();CvInvoke.Threshold(scr, dst5, 60, 255, ThresholdType.Trunc);imageBox1.Image = scr;imageBox2.Image = dst;imageBox3.Image = dst1;imageBox3.Image = dst2;imageBox3.Image = dst3;imageBox3.Image = dst4;imageBox3.Image = dst5;}
局部阈值AdaptiveThreshold
private void button8_Click(object sender, EventArgs e){//局部阈值Mat scr = new Mat("002.jpg", Emgu.CV.CvEnum.ImreadModes.Grayscale);Mat dst = new Mat();CvInvoke.AdaptiveThreshold(scr, dst, 255, AdaptiveThresholdType.GaussianC,Emgu.CV.CvEnum.ThresholdType.BinaryInv, 3, -10);imageBox1.Image = scr;imageBox2.Image = dst;}
中值滤波MedianBlur
private void button9_Click(object sender, EventArgs e){//中值滤波Mat scr = new Mat("003.jpg", Emgu.CV.CvEnum.ImreadModes.AnyColor);Mat dst = new Mat();CvInvoke.MedianBlur(scr, dst, 3);imageBox1.Image = scr;imageBox2.Image = dst;}
均值滤波Blur
private void button10_Click(object sender, EventArgs e){//均值滤波Mat scr = new Mat("003.jpg", Emgu.CV.CvEnum.ImreadModes.AnyColor);Mat dst = new Mat();CvInvoke.Blur(scr, dst,new Size(3,3),new Point(-1,1));imageBox1.Image = scr;imageBox2.Image = dst;}
高斯滤波GaussianBlur
private void button11_Click(object sender, EventArgs e){//高斯滤波Mat scr = new Mat("003.jpg", Emgu.CV.CvEnum.ImreadModes.AnyColor);Mat dst = new Mat();CvInvoke.GaussianBlur(scr, dst, new Size(3, 3),3);imageBox1.Image = scr;imageBox2.Image = dst;}
双边滤波BilateralFilter
private void button12_Click(object sender, EventArgs e){//双边滤波Mat scr = new Mat("001.jpg", Emgu.CV.CvEnum.ImreadModes.AnyColor);Mat dst = new Mat();CvInvoke.BilateralFilter(scr, dst, 10,100,15);imageBox1.Image = scr;imageBox2.Image = dst;}
方框滤波BoxFilter
private void button13_Click(object sender, EventArgs e){//方框滤波Mat scr = new Mat("002.jpg", Emgu.CV.CvEnum.ImreadModes.AnyColor);Mat dst = new Mat();CvInvoke.BoxFilter(scr, dst,DepthType.Cv8U,new Size(5,5),new Point(-1,-1));imageBox1.Image = scr;imageBox2.Image = dst;}
自定义滤波Filter2D
private void button14_Click(object sender, EventArgs e){//自定义滤波int[,,] data=new int[,,]{{{-1},{0},{1}},{{-2},{0},{2}},{{-1},{0},{1}}};Image<Gray,int> kernel=new Image<Gray,int> (data);Mat scr = new Mat("002.jpg", Emgu.CV.CvEnum.ImreadModes.AnyColor);Mat dst = new Mat("002.jpg", Emgu.CV.CvEnum.ImreadModes.AnyColor);CvInvoke.Filter2D(scr, dst,kernel, new Point(-1,-1));// CvInvoke.Normalize(dst, dst, 0, 255, NormType.MinMax);imageBox1.Image = scr;imageBox2.Image = dst;}
腐蚀Erode
private void button15_Click(object sender, EventArgs e){//腐蚀Mat scr = new Mat("002.jpg", ImreadModes.AnyColor);Mat dst = new Mat();Mat struct_element = CvInvoke.GetStructuringElement(ElementShape.Rectangle, new Size(3, 3), new Point(-1, -1));CvInvoke.Erode(scr, dst, struct_element, new Point(-1, -1), 1, BorderType.Default, new MCvScalar(0, 0, 0));imageBox1.Image = scr;imageBox2.Image = dst;}
膨胀Dilate
private void button16_Click(object sender, EventArgs e){//膨胀Mat scr = new Mat("002.jpg", ImreadModes.AnyColor);Mat dst = new Mat();Mat struct_element = CvInvoke.GetStructuringElement(ElementShape.Rectangle, new Size(3, 3), new Point(-1, -1));CvInvoke.Dilate(scr, dst, struct_element, new Point(-1, -1), 1, BorderType.Default, new MCvScalar(0, 0, 0));imageBox1.Image = scr;imageBox2.Image = dst;}
闭运算,先膨胀后腐蚀MorphologyEx--MorphOp.Close
private void button17_Click(object sender, EventArgs e){//闭运算,先膨胀后腐蚀Mat scr = new Mat("002.jpg", ImreadModes.AnyColor);Mat dst = new Mat();Mat struct_element = CvInvoke.GetStructuringElement(ElementShape.Rectangle, new Size(3, 3), new Point(-1, -1));CvInvoke.MorphologyEx(scr, dst,MorphOp.Close, struct_element, new Point(-1, -1), 3, BorderType.Default,new MCvScalar(0, 0, 0));imageBox1.Image = scr;imageBox2.Image = dst;}
开运算,先膨胀后腐蚀MorphologyEx--MorphOp.Open
private void button18_Click(object sender, EventArgs e){//开运算,先膨胀后腐蚀Mat scr = new Mat("002.jpg", ImreadModes.AnyColor);Mat dst = new Mat();Mat struct_element = CvInvoke.GetStructuringElement(ElementShape.Rectangle, new Size(3, 3), new Point(-1, -1));CvInvoke.MorphologyEx(scr, dst, MorphOp.Open, struct_element, new Point(-1, -1), 1, BorderType.Default,new MCvScalar(0, 0, 0));imageBox1.Image = scr;imageBox2.Image = dst;}
形态学梯度MorphologyEx--MorphOp.Gradient
private void button19_Click(object sender, EventArgs e){//形态学梯度Mat scr = new Mat("002.jpg", ImreadModes.AnyColor);Mat dst = new Mat();Mat struct_element = CvInvoke.GetStructuringElement(ElementShape.Rectangle, new Size(3, 3), new Point(-1, -1));CvInvoke.MorphologyEx(scr, dst, MorphOp.Gradient, struct_element, new Point(-1, -1),1, BorderType.Default,new MCvScalar(0, 0, 0));imageBox1.Image = scr;imageBox2.Image = dst;}
高帽MorphologyEx--MorphOp.Tophat
private void button20_Click(object sender, EventArgs e){//高帽Mat scr = new Mat("002.jpg", ImreadModes.AnyColor);Mat dst = new Mat();Mat struct_element = CvInvoke.GetStructuringElement(ElementShape.Rectangle, new Size(3, 3), new Point(-1, -1));CvInvoke.MorphologyEx(scr, dst, MorphOp.Tophat, struct_element, new Point(-1, -1), 1, BorderType.Default,new MCvScalar(0, 0, 0));imageBox1.Image = scr;imageBox2.Image = dst;}
低帽MorphologyEx--MorphOp.Blackhat
private void button21_Click(object sender, EventArgs e){//低帽Mat scr = new Mat("002.jpg", ImreadModes.AnyColor);Mat dst = new Mat();Mat struct_element = CvInvoke.GetStructuringElement(ElementShape.Rectangle, new Size(3, 3), new Point(-1, -1));CvInvoke.MorphologyEx(scr, dst, MorphOp.Blackhat, struct_element, new Point(-1, -1), 1, BorderType.Default,new MCvScalar(0, 0, 0));imageBox1.Image = scr;imageBox2.Image = dst;}
Emgucv图像处理二相关推荐
- python 图像分析自然纹理方向与粗细代码_python skimage图像处理(二)
python skimage图像处理(二) 图像简单滤波 对图像进行滤波,可以有两种效果:一种是平滑滤波,用来抑制噪声:另一种是微分算子,可以用来检测边缘和特征提取. skimage库中通过filte ...
- [Python图像处理] 二十八.OpenCV快速实现人脸检测及视频中的人脸
该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门.OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子.图像增强技术.图像分割等,后期结合深度学习研究图像识别 ...
- [Python图像处理] 二十七.OpenGL入门及绘制基本图形(一)
八年前,我正是通过学习OpenGL和C++,通过做"采蘑菇的小矮人"游戏,慢慢走上并爱上了编程.回过头来,我希望通过Python和OpenGL分享一些有趣的知识,提升您的编程兴趣, ...
- [转载] [Python图像处理] 二十二.Python图像傅里叶变换原理及实现
参考链接: Python中的复数3(三角函数和双曲线函数) 该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门.OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化 ...
- python低通滤波器_[Python图像处理] 二十三.傅里叶变换之高通滤波和低通滤波
[Python图像处理] 二十三.傅里叶变换之高通滤波和低通滤波 发布时间:2019-04-28 20:35, 浏览次数:2739 , 标签: Python 该系列文章是讲解Python OpenCV ...
- 数字图像处理二维码识别 python+opencv实现二维码实时识别
数字图像处理二维码识别 python+opencv实现二维码实时识别 特点: (1)可以实现普通二维码,条形码: (2)解决了opencv输出中文乱码的问题 (3)增加网页自动跳转功能 (4)实现二维 ...
- 《OpenCv视觉之眼》Python图像处理二十三:OpenCV图像处理最终章之基于PyQt5的图像处理界面设计及功能实现
本专栏主要介绍如果通过OpenCv-Python进行图像处理,通过原理理解OpenCv-Python的函数处理原型,在具体情况中,针对不同的图像进行不同等级的.不同方法的处理,以达到对图像进行去噪.锐 ...
- 《OpenCv视觉之眼》Python图像处理二十一:Opencv图像处理之图像线性变换和非线性变换的方法及原理
本专栏主要介绍如果通过OpenCv-Python进行图像处理,通过原理理解OpenCv-Python的函数处理原型,在具体情况中,针对不同的图像进行不同等级的.不同方法的处理,以达到对图像进行去噪.锐 ...
- [Python图像处理] 二十六.图像分类原理及基于KNN、朴素贝叶斯算法的图像分类案例
该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门.OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子.图像增强技术.图像分割等,后期结合深度学习研究图像识别 ...
最新文章
- 全国大学生智能车竞赛申请沁恒RISC-V MCU样品说明
- 关于webcontrols的TreeView中转义符的处理问题
- 用unity制作能量护盾(1)
- 杭电2151 Worm dp
- 是谁在我的心里打了个结(二十一)托付
- [跪了]Servlet 工作原理解析
- 解决无法使用miracast,导致手机无法投屏到电脑的问题
- distribute-list分发列表 转自 红茶三杯sina blog
- windows 性能监控--Perfmon主要指标
- 薇诺娜如何以创新战略在新消费浪潮中屹立不倒
- a标签去下划线 菜鸟教程_HTML下划线标签示例教程
- 网络核心交换机和普通交换机有什么区别?
- excel数据透视表_Excel数据透视表可轻松实现总计
- parameterMap与parameterClass
- 计算机二级Python真题(七)
- openssl 漏洞
- 07——驾校科目一考试系统——布局题库
- 3个月出国|材料科学老师自费赴韩国访学
- 短信开发:收不到短信通知的解决办法
- 电大本科计算机导论试题,2018年电大计算机导论期末考试复习试题及答案.doc
热门文章
- 【集合】--List
- 解决实例化servlet报错500
- Atom使用教程:Atom下载,Atom汉化教程,Atom常用插件
- 3_Intellij_Idea在Debug模式下如何在控制台输入
- neo4j报错1:因CREATE和MERGE报错
- css3两种hover动画
- javax.servlet.jsp.*和javax.servlet.http.*
- LINUX kernel内核各版本下载
- 高中数学补习:集合与常用逻辑用语
- 加解密、PKI与CA基础