当前位置: 首页 > news >正文

C# OpenCvSharp 通道分离

效果

项目

 代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using OpenCvSharp;
using OpenCvSharp.Extensions;namespace OpenCvSharp_通道分离
{public partial class Form1 : Form{public Form1(){InitializeComponent();}private string fileFilter = "*.*|*.bmp;*.jpg;*.jpeg;*.tiff;*.tiff;*.png";Bitmap bmp;String imgPath = "";Mat mat;private void button2_Click(object sender, EventArgs e){OpenFileDialog ofd = new OpenFileDialog();ofd.Filter = fileFilter;if (ofd.ShowDialog() != DialogResult.OK) return;imgPath = ofd.FileName;bmp = new Bitmap(imgPath);mat = new Mat(imgPath, ImreadModes.AnyColor);pictureBox1.Image = bmp;}private void button1_Click(object sender, EventArgs e){if (pictureBox1.Image == null){return;}//BGRMat[] mats = Cv2.Split(mat);if (radioButton1.Checked){//灰度图pictureBox2.Image = BitmapConverter.ToBitmap(mats[0]);pictureBox3.Image = BitmapConverter.ToBitmap(mats[1]);pictureBox4.Image = BitmapConverter.ToBitmap(mats[2]);//Window b = new Window("B", WindowMode.Normal);//Window g = new Window("G", WindowMode.Normal);//Window r = new Window("R", WindowMode.Normal);//b.ShowImage(mats[0]);//g.ShowImage(mats[1]);//r.ShowImage(mats[2]);}else{//彩色图//创建一个空通道0Mat zero = new Mat(mats[0].Size(), MatType.CV_8UC1, new Scalar(0));Mat bsum = new Mat();Mat gsum = new Mat();Mat rsum = new Mat();Cv2.Merge(new Mat[] { mats[0], zero, zero }, bsum);//(b,0,0)图像Cv2.Merge(new Mat[] { zero, mats[1], zero }, gsum);//(0,g,0)图像Cv2.Merge(new Mat[] { zero, zero, mats[2] }, rsum);//(0,0,r)图像pictureBox2.Image = BitmapConverter.ToBitmap(bsum);pictureBox3.Image = BitmapConverter.ToBitmap(gsum);pictureBox4.Image = BitmapConverter.ToBitmap(rsum);}}private void Form1_Load(object sender, EventArgs e){radioButton1.Checked = true;}}
}

Demo下载 

http://www.lryc.cn/news/154257.html

相关文章:

  • oracle 自定义存储过程(非常简单明了)
  • layui--记录
  • 【校招VIP】测试技术考点之单元测试集成测试
  • 【Redis专题】Redis核心数据结构实战与高性能原理解析
  • 常见的几种排序算法
  • 动态贴纸、美颜SDK与AR:创造独特的互动体验
  • 〔021〕Stable Diffusion 之 提示词反推、自动补全、中文输入 篇
  • 如何实现响应式布局
  • HTML <tr> 标签
  • 点云从入门到精通技术详解100篇-点云多尺度分类网络
  • 电脑怎么设置定时关机,2个简单的操作
  • Uboot指令与烧录
  • Visual Studio中使用预编译头文件
  • C语言:选择+编程(每日一练Day15)
  • 确定Mac\Linux系统的架构类型是 x86-64(amd64),还是 arm64 架构
  • Python脚本
  • Kotlin的遍历方法
  • AskIt: Unified Programming Interface for Programming with Large Language Models
  • 【wireshark抓取数据包-PGSQL协议】
  • 【idea学习】
  • ZooKeeper数据模型/znode节点深入
  • 容器编排工具的比较:Kubernetes、Docker Swarm、Nomad
  • nginx--技术文档--架构体系--底层核心-原理
  • Java23种设计模式之【单例模式】
  • SQLserver基础入门理论(超基础)二
  • macbookpro怎么删除软件没有鼠标
  • 华为数通方向HCIP-DataCom H12-821题库(单选题:241-260)
  • PHP8内置函数中的变量函数-PHP8知识详解
  • 9月3日,每日信息差
  • 2023年了,java后端还有未来吗?