当前位置: 首页 > 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 = "";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);pictureBox1.Image = bmp;}private void button1_Click(object sender, EventArgs e){if (imgPath == ""){return;}Mat mat = new Mat(imgPath);Cv2.CvtColor(mat, mat, ColorConversionCodes.BGR2GRAY);Mat dst = new Mat(mat.Height, mat.Width, mat.Type(), Scalar.White);byte grayPixel = 0;for (int r = 0; r < dst.Rows; r++){for (int c = 0; c < dst.Cols; c++){grayPixel = mat.At<byte>(r, c);dst.Set<byte>(r, c, (byte)(255 - grayPixel));}}if (pictureBox2.Image != null){pictureBox2.Image.Dispose();}pictureBox2.Image = BitmapConverter.ToBitmap(dst);}private void button4_Click(object sender, EventArgs e){if (imgPath == ""){return;}Mat mat = new Mat(imgPath);Cv2.CvtColor(mat, mat, ColorConversionCodes.BGR2GRAY);if (pictureBox2.Image != null){pictureBox2.Image.Dispose();}pictureBox2.Image = BitmapConverter.ToBitmap(mat);}private void button3_Click(object sender, EventArgs e){if (imgPath == ""){return;}Mat mat = new Mat(imgPath);Mat dst = new Mat(mat.Height, mat.Width, mat.Type(), Scalar.White);Vec3b vec3B;for (int r = 0; r < dst.Rows; r++){for (int c = 0; c < dst.Cols; c++){vec3B = mat.At<Vec3b>(r, c);vec3B.Item0 = (byte)(255 - vec3B.Item0);vec3B.Item1 = (byte)(255 - vec3B.Item1);vec3B.Item2 = (byte)(255 - vec3B.Item2);dst.Set<Vec3b>(r, c, vec3B);}}if (pictureBox2.Image != null){pictureBox2.Image.Dispose();}pictureBox2.Image = BitmapConverter.ToBitmap(dst);}}
}

下载 

Demo下载

相关文章:

  • 论文精读--GPT1
  • 【操作系统】磁盘存储空间的管理
  • List集合之UML、特点、遍历方式、迭代器原理、泛型、装拆箱及ArrayList、LinkedList和Vector的区别
  • 在Linux操作系统的ECS实例上安装Hive
  • mysql 输出所在月份的最后一天
  • xrpc: 一个基于消息队列的的Go语言RPC框架
  • 第九届大数据与计算国际会议 (ICBDC 2024) 即将召开!
  • HTTP 与 HTTPS-HTTP 解决了 HTTP 哪些问题?
  • 基于SVM的功率分类,基于支持向量机SVM的功率分类识别,Libsvm工具箱详解
  • 在 Windows 上使用 VC++ 编译 OpenSSL 源码的步骤
  • MySQL多实例部署:从概念到实操的全面指南
  • 手机上wmv怎么转换成视频mp4?3种视频转换方法分享
  • k8s的pod调度之节点选择器
  • spark超大数据批量写入redis
  • 外包干了3个月,技术退步明显
  • SegmentFault for Android 3.0 发布
  • [rust! #004] [译] Rust 的内置 Traits, 使用场景, 方式, 和原因
  • 「面试题」如何实现一个圣杯布局?
  • HTTP请求重发
  • javascript 哈希表
  • JavaScript服务器推送技术之 WebSocket
  • open-falcon 开发笔记(一):从零开始搭建虚拟服务器和监测环境
  • Python学习之路13-记分
  • ReactNative开发常用的三方模块
  • uva 10370 Above Average
  • 汉诺塔算法
  • 简单实现一个textarea自适应高度
  • 如何利用MongoDB打造TOP榜小程序
  • 使用Envoy 作Sidecar Proxy的微服务模式-4.Prometheus的指标收集
  • 数据仓库的几种建模方法
  • # 日期待t_最值得等的SUV奥迪Q9:空间比MPV还大,或搭4.0T,香
  • #多叉树深度遍历_结合深度学习的视频编码方法--帧内预测
  • #鸿蒙生态创新中心#揭幕仪式在深圳湾科技生态园举行
  • (Git) gitignore基础使用
  • (LeetCode) T14. Longest Common Prefix
  • (SpringBoot)第二章:Spring创建和使用
  • (附源码)计算机毕业设计ssm电影分享网站
  • (三)Pytorch快速搭建卷积神经网络模型实现手写数字识别(代码+详细注解)
  • (四)TensorRT | 基于 GPU 端的 Python 推理
  • (转)IOS中获取各种文件的目录路径的方法
  • (转)PlayerPrefs在Windows下存到哪里去了?
  • ******之网络***——物理***
  • .desktop 桌面快捷_Linux桌面环境那么多,这几款优秀的任你选
  • .net 微服务 服务保护 自动重试 Polly
  • .net 逐行读取大文本文件_如何使用 Java 灵活读取 Excel 内容 ?
  • .sdf和.msp文件读取
  • /usr/bin/python: can't decompress data; zlib not available 的异常处理
  • @Autowired 与@Resource的区别
  • @SuppressLint(NewApi)和@TargetApi()的区别
  • [ vulhub漏洞复现篇 ] Jetty WEB-INF 文件读取复现CVE-2021-34429
  • [ 常用工具篇 ] AntSword 蚁剑安装及使用详解
  • [\u4e00-\u9fa5] //匹配中文字符
  • [20150321]索引空块的问题.txt
  • [④ADRV902x]: Digital Filter Configuration(发射端)
  • [c++] 什么是平凡类型,标准布局类型,POD类型,聚合体