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,花了一晚上功夫进行调试环境安装,期间遇到了不少问题,现梳理一下安装过程和调试过程中出现的问题. 中间有转载别人的部分 ...
随机推荐
- 团队作业8----第二次项目冲刺(Beta阶段) 第七天
BETA阶段冲刺第六天 1.小会议ing 2.每个人的工作 (1)昨天已完成的工作 完成查重部分 (2) 今天计划完成的工作 (3) 工作中遇到的困难: 尤少辉:在测试的时候发现了,文件名保存到数据 ...
- 201521123067 《Java程序设计》第3周学习总结
201521123067 <Java程序设计>第3周学习总结 1. 本周学习总结 初学面向对象,会学习到很多碎片化的概念与知识.尝试学会使用思维导图将这些碎片化的概念.知识组织起来.请使用 ...
- Java课程设计 猜数游戏团队博客
1.团队成员介绍(需要有照片) 曾飞远(组长):网络1513 201521123080 江鹭涛(组员):网络1513 201521123075 2. 项目git地址 3. 项目git提交记录截图(要体 ...
- 201521123122 《java程序设计》第九周学习总结
201521123122 <java程序设计>第九周实验总结 1. 本周学习总结 以你喜欢的方式(思维导图或其他)归纳总结集合相关内容. 2. 书面作业 常用异常 题目5-1 1.1 截图 ...
- CustomDialog——一个多功能、通用、可自定义的Dialog
CustomDialog--一个多功能.通用.可自定义的Dialog 依赖 compile 'com.github.SiberiaDante:CustomDialog:v1.0.1' 说明[Cus ...
- 五年 Web 开发者 star 的 github 整理说明
欢迎大家前往腾讯云技术社区,获取更多腾讯海量技术实践干货哦~ 作者:樊东东 前端从业几年,积累了不少github开源库. 有时候想查阅以前star的库,但不好找,github大多库都是英文说明,对中文 ...
- bzoj2330(差分约束)
题解:这道题是练差分约束的一道好题目吧,我具体在代码中注释,这样更加好理解, 为什么求最长路呢?因为这样保证了满足条件,如果存在正权环,就表示无解,就是 正权环之间不断要更多的糖果才行. #inclu ...
- java中集合的增删改操作及遍历总结
集合的增删改操作及遍历总结
- ARCGIS切图:TPK文件的空间参考为地理坐标系
先来吐槽一下,之前习惯了百度地图API,所以一直习惯直接将经纬度点添加到地图上进行显示,目前使用ARCGIS RUNTIME FOR ANDROID进行开发,在地图上加点需要原始点的坐标为投影坐标系, ...
- MySQL or MariaDB 错误解决方法之报错代码1045
phpMyAdmin登录报错:mysqli_real_connect(): (28000/1045): Access denied for user 'root'@'localhost' (using ...