Emgucv - ImageBox控件
C#的Winform中用来显示图片的控件是PictureBox,而Emgucv中显示图片用的是ImageBox。
1.ImageBox属性
在WinForm中,单击ImageBox控件,右击查看属性页
(1)FunctionalMode:
Minimun:鼠标在图像上的任何操作失效
RightClickMenu:仅鼠标右键有效
PanAndZoom:仅鼠标滚轮缩放有效
Everything:鼠标滚轮、左键框选、右键功能均生效。
2.使用方式
(1)按照上篇Emgucv配置;
(2)在工具箱中查找ImageBox控件,拖入winform设计窗体。
(3)通过按钮事件为ImageBox填充图片
private void btnReadLocalPic_Click(object sender, EventArgs e)
{
OpenFileDialog ofdOpenLocalImage = new OpenFileDialog();
ofdOpenLocalImage.InitialDirectory = @"C:\Users\Public\Pictures"; //设置默认路径
ofdOpenLocalImage.Title = "请选择要打开的图片";
ofdOpenLocalImage.Multiselect = true;
ofdOpenLocalImage.Filter = "jpg图片|*.jpg|jpeg图片|*.jpeg|bmp图片|*.bmp|png图片|*.png|pdf文件|*.pdf";
ofdOpenLocalImage.CheckFileExists = true;
ofdOpenLocalImage.Multiselect = false;
if (ofdOpenLocalImage.ShowDialog(this) == DialogResult.OK)
{
Image<Bgr, byte> img = new Image<Bgr, byte>(ofdOpenLocalImage.FileName);
this.imgbShow.Image = img;
}
else
{
MessageBox.Show("你没有选择图片");
}
}
(4)使用中有遇到使用上面程序,正确编译了,但在执行到图像读取位置时,出现了异常,单点调试,问题出现在下面这一句:在文件Image.cs中
private void LoadImageUsingOpenCV(FileInfo file)
{
using (Mat m = CvInvoke.Imread(file.FullName, CvEnum.LoadImageType.AnyColor | CvEnum.LoadImageType.AnyDepth))
{
if (m.IsEmpty)
throw new NullReferenceException(String.Format("Unable to load image from file \"{0}\".", file.FullName));
LoadImageFromMat(m);
}
}
通过将Emgucv安装包下bin目录下下面几个文件复制到工程文件的Debug或Release下即可
3.扩展应用
(1)如何设置通过鼠标滚轮来对图像进行缩放(以图像中心为原点)?
Emgucv - ImageBox控件的更多相关文章
- EmguCV控件Emgu.CV.UI.ImageBox及C# picturebox显示图片连续刷新出现闪烁问题
在上一篇里,EmguCV(OpenCV)实现高效显示汉字及叠加 实现了视频叠加及显示,但存在问题,就是 Emgu.CV.UI.ImageBox及C# picturebox显示图片时都会出现闪烁,尤其 ...
- EmguCV3.0几个控件的使用
值方图(Histogram)是一种统计图数据,在影像处理中最常被用来统计一张图像或是感兴趣(ROI)区域的色彩分布,在这边本人使用的EmguCV 2.4.0版的内建值方图工具只有被包含在WinForm ...
- OLE、OCX和ActiveX控件之间的比较
OLE(Object Linking and Embedding,对象连接与嵌入) 一.过去的OLE和今天的OLE 最初的OLE含义是指在程序之间链接和嵌入对象数据,它提供了建立混合文档的手段(资 ...
- VC++编写ActiveX控件
ActiveX这门技术是通过生成“*.ocx”文件来实现的.先来了解下OCX文件,在百度百科上面对OCX是这样解释的:“.ocx是ocx控件的扩展名,OCX 是对象类别扩充组件.如果你用过Visual ...
- JS调用Android、Ios原生控件
在上一篇博客中已经和大家聊了,关于JS与Android.Ios原生控件之间相互通信的详细代码实现,今天我们一起聊一下JS调用Android.Ios通信的相同点和不同点,以便帮助我们在进行混合式开发时, ...
- HTML5 progress和meter控件
在HTML5中,新增了progress和meter控件.progress控件为进度条控件,可表示任务的进度,如Windows系统中软件的安装.文件的复制等场景的进度.meter控件为计量条控件,表示某 ...
- 百度 flash html5自切换 多文件异步上传控件webuploader基本用法
双核浏览器下在chrome内核中使用uploadify总有302问题,也不知道如何修复,之所以喜欢360浏览器是因为帮客户控制渲染内核: 若页面需默认用极速核,增加标签:<meta name=& ...
- JS与APP原生控件交互
"热更新"."热部署"相信对于混合式开发的童鞋一定不陌生,那么APP怎么避免每次升级都要在APP应用商店发布呢?这里就用到了混合式开发的概念,对于电商网站尤其显 ...
- UWP开发必备:常用数据列表控件汇总比较
今天是想通过实例将UWP开发常用的数据列表做汇总比较,作为以后项目开发参考.UWP开发必备知识点总结请参照[UWP开发必备以及常用知识点总结]. 本次主要讨论以下控件: GridView:用于显示数据 ...
随机推荐
- Mock6 moco框架中如何加入header
新建一个 startupWithHeader.json,这次在request里面添加了headers属性 [ { "description": "这是一个带header的 ...
- 编写高质量的Python代码系列(一)之用Pythonic方式来思考
Python开发者用Pythonic这个形容词来描述具有特定风格的代码.这种风格是大家在使用Python语言进行编程并相互协作的过程中逐渐形成的习惯.那么,如何以改风格完成常见的Python编程工作呢 ...
- Numpy 系列(七)- 常用函数
在了解了 Numpy 的基本运算操作,下面来看下 Numpy常用的函数. 数学运算函数 add(x1,x2 [,out]) 按元素添加参数,等效于 x1 + x2 subtract(x1,x2 ...
- 解读Scrapy框架
Scrapy框架基础:Twsited Scrapy内部基于事件循环的机制实现爬虫的并发.原来: url_list = ['http://www.baidu.com','http://www.baidu ...
- solr面板的使用
创建数据库 先别着急点击Add Core,先去目录下创建几个文件. 去solrhome目录下创建一个文件夹,比如test,这个文件夹就是数据库文件夹.
- DirectX11 With Windows SDK--15 几何着色器初探
前言 从这一部分开始,感觉就像是踏入了无人深空一样,在之前初学DX11的时候,这部分内容都是基本上跳过的,现在打算重新认真地把它给拾回来. DirectX11 With Windows SDK完整目录 ...
- Django小技巧——使用package管理app
在一个学习视频上看见的小技巧,遂记录下来. 1. 如下图所示,项目中有多个app,本技巧要解决的问题是集中管理这多个app,将其放入一个package下集中管理,改善项目的视图环境 2. 建立一个pa ...
- 第四章Android移植环境搭建
第四章Android移植环境搭建 这一章主要学习如何搭建 Android 移植的环境.因为 Android 底层是基于 Linux 内核的,所以本章从交叉编译环境等嵌入式开发环境的搭建开始,介绍了 B ...
- linux网关下drcom web自动登陆脚本
/etc/init.d/drcomd: #!/bin/sh # # The environment is cleared before executing this script # so the p ...
- Mysql --数据的增删改
插入数据 INSERT 更新数据 UPDATE 删除数据 DELETE 一. 在mysql管理软件中,可以通过SQL语句中的DML语言来实现数据的操作,包括 1.使用insert实现数据的插入 2.u ...