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图像处理二相关推荐

  1. python 图像分析自然纹理方向与粗细代码_python skimage图像处理(二)

    python skimage图像处理(二) 图像简单滤波 对图像进行滤波,可以有两种效果:一种是平滑滤波,用来抑制噪声:另一种是微分算子,可以用来检测边缘和特征提取. skimage库中通过filte ...

  2. [Python图像处理] 二十八.OpenCV快速实现人脸检测及视频中的人脸

    该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门.OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子.图像增强技术.图像分割等,后期结合深度学习研究图像识别 ...

  3. [Python图像处理] 二十七.OpenGL入门及绘制基本图形(一)

    八年前,我正是通过学习OpenGL和C++,通过做"采蘑菇的小矮人"游戏,慢慢走上并爱上了编程.回过头来,我希望通过Python和OpenGL分享一些有趣的知识,提升您的编程兴趣, ...

  4. [转载] [Python图像处理] 二十二.Python图像傅里叶变换原理及实现

    参考链接: Python中的复数3(三角函数和双曲线函数) 该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门.OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化 ...

  5. python低通滤波器_[Python图像处理] 二十三.傅里叶变换之高通滤波和低通滤波

    [Python图像处理] 二十三.傅里叶变换之高通滤波和低通滤波 发布时间:2019-04-28 20:35, 浏览次数:2739 , 标签: Python 该系列文章是讲解Python OpenCV ...

  6. 数字图像处理二维码识别 python+opencv实现二维码实时识别

    数字图像处理二维码识别 python+opencv实现二维码实时识别 特点: (1)可以实现普通二维码,条形码: (2)解决了opencv输出中文乱码的问题 (3)增加网页自动跳转功能 (4)实现二维 ...

  7. 《OpenCv视觉之眼》Python图像处理二十三:OpenCV图像处理最终章之基于PyQt5的图像处理界面设计及功能实现

    本专栏主要介绍如果通过OpenCv-Python进行图像处理,通过原理理解OpenCv-Python的函数处理原型,在具体情况中,针对不同的图像进行不同等级的.不同方法的处理,以达到对图像进行去噪.锐 ...

  8. 《OpenCv视觉之眼》Python图像处理二十一:Opencv图像处理之图像线性变换和非线性变换的方法及原理

    本专栏主要介绍如果通过OpenCv-Python进行图像处理,通过原理理解OpenCv-Python的函数处理原型,在具体情况中,针对不同的图像进行不同等级的.不同方法的处理,以达到对图像进行去噪.锐 ...

  9. [Python图像处理] 二十六.图像分类原理及基于KNN、朴素贝叶斯算法的图像分类案例

    该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门.OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子.图像增强技术.图像分割等,后期结合深度学习研究图像识别 ...

最新文章

  1. 全国大学生智能车竞赛申请沁恒RISC-V MCU样品说明
  2. 关于webcontrols的TreeView中转义符的处理问题
  3. 用unity制作能量护盾(1)
  4. 杭电2151 Worm dp
  5. 是谁在我的心里打了个结(二十一)托付
  6. [跪了]Servlet 工作原理解析
  7. 解决无法使用miracast,导致手机无法投屏到电脑的问题
  8. distribute-list分发列表 转自 红茶三杯sina blog
  9. windows 性能监控--Perfmon主要指标
  10. 薇诺娜如何以创新战略在新消费浪潮中屹立不倒
  11. a标签去下划线 菜鸟教程_HTML下划线标签示例教程
  12. 网络核心交换机和普通交换机有什么区别?
  13. excel数据透视表_Excel数据透视表可轻松实现总计
  14. parameterMap与parameterClass
  15. 计算机二级Python真题(七)
  16. openssl 漏洞
  17. 07——驾校科目一考试系统——布局题库
  18. 3个月出国|材料科学老师自费赴韩国访学
  19. 短信开发:收不到短信通知的解决办法
  20. 电大本科计算机导论试题,2018年电大计算机导论期末考试复习试题及答案.doc

热门文章

  1. 【集合】--List
  2. 解决实例化servlet报错500
  3. Atom使用教程:Atom下载,Atom汉化教程,Atom常用插件
  4. 3_Intellij_Idea在Debug模式下如何在控制台输入
  5. neo4j报错1:因CREATE和MERGE报错
  6. css3两种hover动画
  7. javax.servlet.jsp.*和javax.servlet.http.*
  8. LINUX kernel内核各版本下载
  9. 高中数学补习:集合与常用逻辑用语
  10. 加解密、PKI与CA基础