Emgu.CV(二)
小实例
- class Program
- {
- static void Main(string[] args)
- {
- #region Emgu.Cv
- string imgPath = @"D:\timg.jpg";
- //从文件中读取图像
- var image = CvInvoke.Imread(imgPath, LoadImageType.Color);
- //创建一个显示窗口
- CvInvoke.NamedWindow("AJpg", NamedWindowType.Normal);
- //显示图片
- CvInvoke.Imshow("AJpg", image);
- //等待按键输入
- CvInvoke.WaitKey();
- CvInvoke.DestroyWindow("AJpg");
- image.Dispose();
- #endregion
- Console.Read();
- }
- }
基本方法
一.创建图像
- Image<Bgr,Byte> image=new Image<Bgr,Byte>(400,400,new Bgr(255,0,0));
二.读入图像
- Image<Bgr, Byte> image = new Image<Bgr, byte>(@"D:\youyi-003.jpg");
三.从.Net Bitmap对象创建图像
- Image<Bgr, Byte> image = new Image<Bgr, Byte>(bmp);
四.像素的获取
彩图时:
- Bgr _Bgr = _Image[0, 0];//获取_Image图像[0, 0]处的bgr像素值;
灰度图时:
- Gray _Gray = _image[0, 0]];//获取_Gray图像[0, 0]处的gray像素值;
五、像素的赋值
- //按位置指定或写入像素值
- //彩图
- _Image[0, 0] = new Bgr(Color.Red);
- //灰度图
- _image[0, 0] = new Gray(200);
- //按数据属性指定或写入像素值
- //彩图时
- Color R = Color.Red;
- _Image.Data[0,0,2] = R.R; //红
- _Image.Data[0,0,1] = R.G; //绿
- _Image.Data[0,0,0] = R.B; //蓝
- //灰度图时
- _image[0, 0] = new Gray(200);
六、像素的转换
- // BGR转化成int(把value.Red替换成数字)
- //Color _colour = Color.FromArgb((int)value.Red, (int)value.Blue, (int)value.Green);
- Color _colour = Color.FromArgb(100, 200, 250);
- //Gray 转化成 int
- int _intensity = (int)_Gray.Intensity;
- //直接用数据属性转换
- //Colour
- Color _colour1 = Color.FromArgb(_Image.Data[0, 0, 0],
- _Image.Data[0, 0, 1], _Image.Data[0, 0, 2]);
- //Gray Image
- int _intensity1 = _image.Data[0, 0, 0];
七、图像显示
- //使用ImageBox;
- Image<Bgr, Byte> _Image = new Image<Bgr, byte>(Openfile.FileName);
- imageBox1.Image = _image;
- //转换为位图使用windows form中的PictureBox控件。
Image<Bgr, Byte> _Image = new Image<Bgr, byte>(Openfile.FileName);
pictureBox1.Image = _Image.ToBitmap();
小实例
图片反转
1.WinForm中引入emgu.CV.UI.dll 引入工具栏中
2.编写代码
- private void Form1_Load(object sender, EventArgs e)
- {
- //从文件中加载图片
- Image<Bgr, Byte> image = new Image<Bgr, byte>(@"D:\timg.jpg");
- imageBox1.Image = image;
- }
- private void btn_Flip_Click(object sender, EventArgs e)
- {
- if (imageBox1.Image!=null)
- {
- var image = (Image<Bgr, Byte>)imageBox1.Image;
- //图片反转
- image._Flip(FlipType.Horizontal);
- imageBox1.Image = image;
- }
- }
Emgu.CV(二)的更多相关文章
- [转载+原创]Emgu CV on C# (四) —— Emgu CV on 全局固定阈值二值化
重点介绍了全局二值化原理及数学实现,并利用emgucv方法编程实现. 一.理论概述(转载,如果懂图像处理,可以略过,仅用作科普,或者写文章凑字数) 1.概述 图像二值化是图像处理中的一项基本技术,也 ...
- [转载+原创]Emgu CV on C# (二) —— Emgu CV on 灰度化
本文主要对彩色图片灰度化的方法及其实现过程进行总结,最终给出Emgu CV实现的代码. 一.灰度化原理及数学实现(转载自——<图像灰度化方法总结及其VC实现> 该篇文章使用opencv实现 ...
- 【转】Emgu CV on C# (五) —— Emgu CV on 局部自适应阈值二值化
局部自适应阈值二值化 相对全局阈值二值化,自然就有局部自适应阈值二值化,本文利用Emgu CV实现局部自适应阈值二值化算法,并通过调节block大小,实现图像的边缘检测. 一.理论概述(转载自< ...
- C# Emgu CV学习笔记二之图像读写的两种方法
http://blog.csdn.net/marvinhong/article/details/6800450 图像显示在控件loadPictureBox上 方法一 //读取图像001.jpg Int ...
- [转载+原创]Emgu CV on C# (五) —— Emgu CV on 局部自适应阈值二值化
局部自适应阈值二值化 相对全局阈值二值化,自然就有局部自适应阈值二值化,本文利用Emgu CV实现局部自适应阈值二值化算法,并通过调节block大小,实现图像的边缘检测. 一.理论概述(转载自< ...
- [转载+原创]Emgu CV on C# (七) —— Emgu CV on 轮廓检测
轮廓检测 对于查找轮廓我们一般要对图像Canny检测.但是对于很特殊的场合其实我们还可以直接对二值化的图像进行轮廓的提取. 关键函数 1. cvFindContours Retrieves conto ...
- [转载+原创]Emgu CV on C# (六) —— Emgu CV on Canny边缘检测
Canny边缘检测也是一种边缘检测方法,本文介绍了Canny边缘检测的函数及其使用方法,并利用emgucv方法将轮廓检测解算的结果与原文进行比较. 图像的边缘检测的原理是检测出图像中所有灰度值变化较大 ...
- [转载+原创]Emgu CV on C# (三) —— Emgu CV on 均衡化
本文简要描述了均衡化原理及数学实现等理论问题,最终利用emgucv实现图像的灰度均衡. 直方图的均衡化,这是图像增强的常用方法. 一.均衡化原理及数学实现(转载) 均衡化原理及数学实现可重点参看——& ...
- [转载+原创]Emgu CV on C# (一) —— Emgu CV on Visual C# 2010
2014-08-16 最近要进行图像识别,准备利用几天的时间研究一下Emgu CV,花了一晚上功夫进行调试环境安装,期间遇到了不少问题,现梳理一下安装过程和调试过程中出现的问题. 中间有转载别人的部分 ...
随机推荐
- 201521123033《Java程序设计》第1周学习总结
1. 本周学习总结 (1)了解了JVM,JRE,JDK (2)配置java环境变量 (3)编译一些简单的java代码 2. 书面作业 为什么java程序可以跨平台运行?执行java程序的步骤是什么?( ...
- 201521123021《Java程序设计》第1周学习总结
1. 本章学习总结 1.第一次接触Java,初步了解Java的运行环境,学会了安装eclipse和JDK,解决了在安装中的path变量的设置问题. 2.知道了jvm,jre,jdk的区别,jdk是一个 ...
- 201521123005 《Java程序设计》 第十二周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. 2. 书面作业 将Student对象(属性:int id, String name,int age,doubl ...
- 201521123034《Java程序设计》第十三周学习总结
1. 本周学习总结 以你喜欢的方式(思维导图.OneNote或其他)归纳总结多网络相关内容. 2. 书面作业 1. 网络基础 1.1 比较ping www.baidu.com与ping cec.jmu ...
- 201521123050 《Java程序设计》第14周学习总结
1. 本周学习总结 2. 书面作业 1. MySQL数据库基本操作 1.1立数据库,将自己的姓名.学号作为一条记录插入.(截图,需出现自己的学号.姓名) 在自己建立的数据库上执行常见SQL语句(截图) ...
- Eclipse rap 富客户端开发总结(15) :rap如何使用js
1. 把输入的字符串当 javascript 执行 try { RWT.getResponse().getWriter().println("alert('123');"); } ...
- PowerShell脚本—停止占用8080端口的进程
$str = netstat -ano $list = $str.Split('\n') ; $i -lt $list.Length; $i++) { $item_list = [System.Tex ...
- Excel表科学记数法的数字和文本的转换
一,科学记数法的数字转换文本类型: 1,还未有数据,先选中列或者单元格 右键单击->设置单元格格式->文本->确定 2,已有数据,先选中列或者单元格 右键单击->设置单元格格式 ...
- MyBatis框架(一)
MyBatis介绍: MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为 ...
- Maven常见错误以及解决方案【转载】
常见的Maven错误 当遇到401错误的时候,看看自己当前使用的Maven是集成的还是自己下载的,然后去配置setting.xml文件