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下载

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/705046.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

电机应用中的大功率电阻器?

在这篇文章中&#xff0c;我们将考虑电机应用中的电阻器。 交流、直流和专用电机用于广泛的应用。一些电机应用相对简单&#xff0c;唯一需要关注的是电机的启动和关闭。在这里&#xff0c;成本、简单性和可靠性是主要问题&#xff0c;而电机控制电阻器是常见的解决方案。 在…

【数据结构】B树,B+树,B*树

文章目录 一、B树1.B树的定义2.B树的插入3.B树的中序遍历 二、B树和B*树1.B树的定义2.B树的插入3.B*树的定义4.B树系列总结 三、B树与B树的应用 一、B树 1.B树的定义 1. 在内存中搜索效率高的数据结构有AVL树&#xff0c;红黑树&#xff0c;哈希表等&#xff0c;但这是在内存…

解决:selenium web browser 的版本适配问题

文章目录 解决方案&#xff1a;使用 webdriver manager 自动适配驱动 使用 selenium 操控浏览器的时候报错&#xff1a; The chromedriver version (114.0.5735.90) detected in PATH at /opt/homebrew/bin/chromedriver might not be compatible with the detected chrome ve…

IK分词器

下载 elasticsearch&#xff1a;https://www.elastic.co/cn/elasticsearch elasticsearch-analysis-ik&#xff1a;https://github.com/medcl/elasticsearch-analysis-ik 启动 elasticsearch&#xff1a;elasticsearch\bin\elasticsearch.bat http://localhost:9200 启动 kiban…

AutoSAR(基础入门篇)11.5-服务映射(自顶向下)

目录 一、配置Service Needs 二、配置Cfg同步 我们在下一节的实验课中讲解这里的具体配置流程,本节主要讲一下这些配置的大致流程和配置项的作用。NvBlockSwComponents是一个可选项, 我们这里开始不使用NvBlockSwComponents,将我们的Application SWC直接和NvM通过C/S连接起…

C++面试宝典第32题:零钱兑换

题目 给定不同面额的硬币coins和一个总金额amount,编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,则返回-1。说明:你可以认为每种硬币的数量是无限的。 示例1: 输入:coins = [1, 2, 5], amount = 11 输出:3 解释:11 = …

golang 函数式编程库samber/mo使用: Either

golang 函数式编程库samber/mo使用&#xff1a; Either 如果您不了解samber/mo库&#xff0c; 请先阅读第一篇 Option 结构定义 有时候我们不确定值的类型&#xff0c; 一个值可能是int&#xff0c; 也可能是string&#xff0c; 这时候我们可以使用Either类型。 Either类型是…

SQL-Labs靶场“29-31”关通关教程

君衍. 一、二十九关 基于错误的WAF单引号注入1、源码分析2、HTTP参数污染3、联合查询注入4、updatexml报错注入 二、三十关 基于错误的WAF双引号注入1、源码分析2、联合查询注入3、updatexml报错注入 三、三十一关 基于错误的WAF双引号括号注入1、源码分析2、联合查询注入3、up…

【JavaEE】_前端使用GET请求的queryString向后端传参

目录 1. GET请求的query string 2. 关于query string的urlencode 1. GET请求的query string 1. 在HttpServletRequest请求中&#xff0c;getParameter方法用于在服务器这边获取到请求中的参数&#xff0c;主要在query string中&#xff1b; query string中的键值对都是程序…

C#中的关键字params的用法

C#中有一个关键字params&#xff0c;它相对于一些主要关键字来说&#xff0c;还算是较为低频的&#xff0c;但也会用到。我们可以了解和学习下。 一、定义及约束 params关键字的作用在于可以让方法参数的数目可变。 params的参数类型必须是一维数组。 一旦在方法加入了para…

C++ list详解以及模拟实现

目录 1.list的使用 1.1list的定义 1.2list的使用 1.3list iterator使用 1.4list capacity 1.5list element access 1.6list增删查改 2.list迭代器失效问题 3.list的模拟实现 1.list的使用 1.1list的定义 1. list是可以在常数范围内在任意位置进行插入和删除的序列式容…

Redis之Sentinel模式安装文档

下载 官网地址 http://download.redis.io/releases/ 1、环境: 127.0.0.1 127.0.0.2 127.0.0.3 2、创建目录,创建redis用户,解压Redis安装包 mkdir -p /u01/redisgroupadd redisuseradd -g redis redis chown -R redis:redis /u01/redis/ su - redis tar -zxvf redis-5…

【深度学习笔记】4_4 自定义层

注&#xff1a;本文为《动手学深度学习》开源内容&#xff0c;部分标注了个人理解&#xff0c;仅为个人学习记录&#xff0c;无抄袭搬运意图 4.4 自定义层 深度学习的一个魅力在于神经网络中各式各样的层&#xff0c;例如全连接层和后面章节中将要介绍的卷积层、池化层与循环层…

240Hz高刷电竞显示器 - HKC VG253KM

&#x1f389;&#x1f389;&#x1f389; 各位电竞爱好者们&#xff0c;今天给大家带来一款神秘武器&#xff0c;一款能够让你在游戏中大展拳脚的高刷电竞显示器 - HKC VG253KM&#xff01;&#x1f525;&#x1f525;&#x1f525; 这款显示器&#xff0c;哎呀&#xff0c;真…

10分钟快速开始SkyWalking结合Springboot项目

10分钟快速开始SkyWalking结合Springboot项目 实习期间&#xff0c;公司让我去学习一下链路追踪如何集成到Springboot项目中。 为此有两个方案&#xff1a; 1.opentelementryjaegerprometheus opentelementry 收集器收集线上的metrics和traces&#xff0c;然后发送给jaeger和p…

IP对讲终端SV-6002(防水)

SV-6002&#xff08;防水&#xff09;是一款IP对讲终端&#xff0c;具有10/100M以太网接口&#xff0c;其接收网络的音频数据&#xff0c;解码后播放&#xff0c;外部DC12~24V电源供电端子&#xff0c;提供单路2W的音频输出。基于TCP/IP网络通信协议和数字音频技术&#xff0c;…

低代码开发如何助力数字化企业管理系统平台构建

随着数字化时代的到来&#xff0c;企业对于管理系统的需求日益增长。高效的管理系统可以提高企业的运作效率&#xff0c;降低成本&#xff0c;提升竞争力。然而&#xff0c;传统的开发方式在应对日益复杂的管理系统需求时&#xff0c;显得力不从心。低代码开发作为一种新兴的开…

Vue笔记(一)

常用指令 1.v-show与v-if底层原理的区别 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>创建一个V…

OpenGL ES 3.0 从入门到精通系统性学习教程

为什么要写这个教程 因为在工作中频繁使用 OpenGL ES 做一些特效、滤镜之类的效果&#xff0c;加上平时学到的的知识点也比较细碎&#xff0c;就想着去系统地学习下 OpenGL ES 相关开发知识&#xff0c;并将学习过程记录下来。 准备知识 一些同学反映&#xff0c;学习这个教…

STM32存储左右互搏 QSPI总线FATS文件读写FLASH W25QXX

STM32存储左右互搏 QSPI总线FATS文件读写FLASH W25QXX FLASH是常用的一种非易失存储单元&#xff0c;W25QXX系列Flash有不同容量的型号&#xff0c;如W25Q64的容量为64Mbit&#xff0c;也就是8MByte。这里介绍STM32CUBEIDE开发平台HAL库Quad SPI总线实现FATS文件操作W25Q各型号…