Emgucv图像处理
来源:互联网 发布:淘宝客seo 编辑:程序博客网 时间:2024/06/13 02:14
Emgucv图像处理
说明:imageBox1、imageBox2、imageBox3、imageBox4为imageBox控件
感兴趣区域ROI使用
private void button1_Click(object sender, EventArgs e) { Mat scr = new Mat("002.jpg", Emgu.CV.CvEnum.ImreadModes.AnyColor); imageBox1.Image = scr; Mat scr1 = new Mat(scr.Size, DepthType.Cv8U, 3); scr.CopyTo(scr1);//复制一个 //感兴趣区域ROI使用//图片组合 Mat logo = new Mat("001.jpg", Emgu.CV.CvEnum.ImreadModes.AnyColor); Mat mat_image = new Mat(scr1, new Rectangle(new Point(80, 80), logo.Size));//提取图片的ROI保存到image中 logo.CopyTo(mat_image, null);//把Logo数据值给image,从而改变scr的ROI数据。 imageBox2.Image = scr1; }
图像线性叠加
private void button6_Click(object sender, EventArgs e) { Mat scr = new Mat("002.jpg", Emgu.CV.CvEnum.ImreadModes.AnyColor); imageBox1.Image = scr; Mat logo = new Mat("001.jpg", Emgu.CV.CvEnum.ImreadModes.AnyColor); Mat mat_image = new Mat(scr, new Rectangle(new Point(80, 80), logo.Size)); //图像线性叠加 Mat result = new Mat(); CvInvoke.AddWeighted(logo, 0.5, mat_image, 0.5, 10, result);//加权重 result.CopyTo(mat_image, null);//把Logo数据值给image,从而改变scr的ROI数据。 imageBox3.Image = result; }
白平衡
private void button2_Click(object sender, EventArgs e) { //白平衡 Mat scr = new Mat("002.jpg", Emgu.CV.CvEnum.ImreadModes.AnyColor); Mat result = new Mat(); XPhotoInvoke.BalanceWhite(scr, result, WhiteBalanceMethod.Simple, 0, 255, 255, 0); imageBox1.Image = scr; imageBox2.Image = result; }
实现通道分离
private void button3_Click(object sender, EventArgs e) { //实现通道分离 Mat scr = new Mat("002.jpg", Emgu.CV.CvEnum.ImreadModes.AnyColor); VectorOfMat vm = new VectorOfMat(); CvInvoke.Split(scr, vm); var vms = vm.GetInputOutputArray(); Mat one_channel1 = vms.GetMat(0); Mat one_channel2 = vms.GetMat(1); Mat one_channel3 = vms.GetMat(2); imageBox2.Image = one_channel1; imageBox3.Image = one_channel2; imageBox4.Image = one_channel3; }
通道合并
private void button4_Click(object sender, EventArgs e) { //通道合并 Mat scr = new Mat("002.jpg", Emgu.CV.CvEnum.ImreadModes.AnyColor); VectorOfMat vm = new VectorOfMat(); CvInvoke.Split(scr, vm); var vms = vm.GetInputOutputArray(); Mat one_channel1 = vms.GetMat(0); Mat one_channel2 = vms.GetMat(1); Mat one_channel3 = vms.GetMat(2); Mat dst = new Mat(); CvInvoke.Merge(vm, dst); VectorOfMat mv = new VectorOfMat(); mv.Push(one_channel3); mv.Push(one_channel2); mv.Push(one_channel1); CvInvoke.Merge(mv, dst); imageBox2.Image = dst; }
混合通道
private void button5_Click(object sender, EventArgs e) { //混合通道 Mat scr = new Mat("002.jpg", Emgu.CV.CvEnum.ImreadModes.AnyColor); Mat dst = new Mat(scr.Size, DepthType.Cv8U, 3); int[] mix = new int[] { 0, 2, 1, 1, 2, 0 }; CvInvoke.MixChannels(scr, dst, mix); imageBox5.Image = dst; }
0 0
- Emgucv图像处理
- Emgucv图像处理二
- EmguCV的C#图像处理
- Emgucv类库学习-图像处理
- 【图像处理】A卡使用Emgucv时调用失败解决方法
- emgucv 图像重心
- c# Emgucv 图像旋转
- EmguCV遍历图像像素
- c#+EmguCv 图像灰度化
- EmguCV图像显示控制台程序
- 【Emgucv】图像卷积(TEST)
- 使用EmguCV处理Kinect数据流
- C#+emgucv学习过程记录之图像
- EmguCV使用Stitcher类来拼接图像
- OpenCV与EmguCV中的图像轮廓提取
- EmguCV封装的图像拼接中的问题
- 【EMGUCV】图像的直方图均衡化增强
- 使用emgucv读取USB相机图像
- 动态规划——背包问题(二)
- python_adult_pca
- JavaWeb入门学习-搭建环境(Eclipse版)
- ajax 编码函数的运用 json_encode() json_decode()
- KMP模板
- Emgucv图像处理
- centos安装mysql
- 信息安全——消息认证与数字签名
- Android--Drawable标签介绍
- 常见面试题整理--数据库篇(每位开发者必备)
- 随机梯度下降
- windows 配置apache+php+mysql环境
- Android问题:ScrollView默认位置不是最顶部最全解决方案
- QT入门学习随笔