首页 > 编程语言 >C#+OpenCV基础(八)_获取修改图片亮度

C#+OpenCV基础(八)_获取修改图片亮度

时间:2024-07-10 16:52:17浏览次数:13  
标签:Mat C# Cv2 亮度 OpenCV hsv new 图片 mats

1、获取图片亮度

/// <summary>
/// 获取图片的亮度(取HSV中V通道的均值)
/// </summary>
/// <param name="mat">图片</param>
/// <returns></returns>
public static Scalar GetVChannelMean(Mat mat)
{
    // 转Hsv图片
    Mat hsv = new Mat();
    Cv2.CvtColor(mat, hsv, ColorConversionCodes.BGR2HSV);

    // 取V通道
    Cv2.Split(hsv, out Mat[] mats);
    Mat vMat = mats[2];

    // 求平均值
    Scalar meanValue = vMat.Mean();  // 同 Cv2.Mean(vMat);

    return meanValue;
}

2、修改图片亮度

/// <summary>
/// 修改图片的亮度(修改HSV中V通道的每个像素值;但不进行对比度补偿)
/// </summary>
/// <param name="mat">图片</param>
/// <param name="modifyValue">修改值</param>
/// <returns></returns>
public static Mat SetVChannelValue(Mat mat, int modifyValue)
{
    // 转Hsv图片
    Mat hsv = new Mat();
    Cv2.CvtColor(mat, hsv, ColorConversionCodes.BGR2HSV);

    // 取V通道并修改值
    Cv2.Split(hsv, out Mat[] mats);
    //mats[2] = new Mat(mats[2].Size(), mats[2].Type(), new Scalar(255));  // 修改值;new Scalar(modifyValue)
    Mat mat2 = new Mat();
    Cv2.Add(mats[2], new Scalar(modifyValue), mat2);
    mats[2] = mat2;

    // 合并
    Mat dstMet = new Mat();
    Cv2.Merge(mats, dstMet);

    return dstMet;
}

标签:Mat,C#,Cv2,亮度,OpenCV,hsv,new,图片,mats
From: https://www.cnblogs.com/qq2806933146xiaobai/p/18294461

相关文章

  • [ABC360B]Vertical Reading
    题解这个题看起来很好做,有两个字符串S和T,如果T的每个字符,都能在S中找到,同时要满足以下条件:将S串分割成w段,每一段的第c个字符组成T,如果可以的话,就输出Yes,否则输出No\(1\leqc\leqw<|S|\)错误思路刚开始,我的思路是找到T的每个字符在S中的位置,如果这些位置能够每隔W个的话,就输......
  • C#+OpenCV基础(六)_均值中值高斯双边滤波
    一、知识卷积核:用来对图像矩阵进行平滑的矩阵,也称为过滤器。锚点:卷积核和图像矩阵重叠,进行内积运算,运算后锚点位置的像素点会被计算值代替。默认其中心点为锚点。步长:卷积核沿着图像矩阵移动的方向。内积:卷积核和图像矩阵对应像素点相乘,然后相加得到一个总和。二、实现1、......
  • 易优CMS模板标签videolist视频列表
    [基础用法]标签:videolist描述:该标签用于视频模型选集功能,调用当前视频侧面选集列表。提示:搭配【videoplay视频播放】标签使用,默认播放选集列表的第一个。用法:{eyou:videolistaid='文档ID'autoplay='on'id='video'}  <ahref="javascript:void(0);"{$video.onclick}>{$vid......
  • Luckysheet 的使用以及踩坑
    最近在项目中遇到了需要实现一个类似于excel功能的需求,同时需要实现excel的导入导出以及打印功能。接下来介绍一下使用luckysheet的过程以及过程中遇到的一些问题以及解决方案。1.使用1.1引入lucky是一个比较老的项目,所以引入方式建议使用全局方式引入。虽然也有npm包,但是......
  • CAD可以转成PDF吗?有哪些转换的方法?
    在CAD制图过程中,我们可能会遇到这样的问题:完成CAD制图后,为了方便阅览,经常会直接输出成PDF格式,输出完成后,打开一看,发现和原来的图纸差距很大,输出PDF文字显示不全,遇到这种情况该如何处理呢?给大家分享2个CAD转PDF的好用的转换方法。方法一:使用转换工具ilovepdf在线页面转换,无需下......
  • C#+OpenCV基础(五)_添加边框
    ///<summary>///添加边框///</summary>///<paramname="srcMat">图片</param>///<paramname="top">顶部</param>///<paramname="bottom">底部</param>///<paramname="left"......
  • 0081_Search-in-Rotated-Sorted-Array-II【M】pivot 有序数组(值可重复)中的查找数值
    JY:pivot有序数组(值可重复)中的查找数值1、二分查找该题的任何解法同样可用于0033_search-in-rotated-sorted-array【M】中nums可能包含重复元素,这会影响到程序的时间复杂度吗?会,使用二分查找局部有序时,当nums[mid]==nums[low]时(或其它类似情况),无法确定左侧区间还是右......
  • windows下使用dockerdesktop进行部署
    Docker部署springboot项目环境准备要在windows上使用docker需要确认系统的需求需要启用虚拟化支持的CPU启用适用于windows的Linux子系统功能保证足够的内存下载dockerdesktop下载后会提示安装对应的环境坑点安装过程中需要安装wsl环境,会遇到0x80370102问题。根据......
  • 今天晚上要看一下整车网络拓扑和CAN同学以及DBC文件
    https://mp.weixin.qq.com/s/UE8qqWCZxhq-yHzJb_VUawhttps://mp.weixin.qq.com/s?__biz=MzkzNzUwNDQ2NQ==&mid=2247486855&idx=1&sn=d1aa60630dd731f9bf8a662a65d29675&chksm=c28f3639f5f8bf2ff02b7eea4d24b772391fcfc02e51626b149f977bd3e8071e65a8566629f2......
  • Electron-ViteChat桌面端聊天室|electron31+vite5+pinia2仿微信EXE程序
    原创研发Electron31+vue3+elementPlus仿微信客户端聊天应用。使用最新跨平台技术electron31.x+vite5+vue3setup+pinia2+element-plus实战开发电脑版聊天室Exe程序。整个聊天程序界面清爽简约,支持展示/收缩侧边栏、electron新开多窗口、换肤等功能。electron-vitechat......