【学习记录】去除彩色图像的的黑色/阴影区域

本文介绍了一种使用Python和OpenCV消除彩色图像中阴影区域的方法,并通过调整对比度来增强图像效果。该方法首先将图像转换为灰度图像,然后通过计算灰度图像的最小和最大值来确定阴影部分,并将其去除。此外,还提供了一个交互式的对比度调整工具。

工作中,遇到的问题,原来论坛中是C++版本,自己写成的python版本,仅供参考。

原文链接

How to remove black/shadows regions of colored Image via OpenCV - OpenCV Q&A Forum

cvtColor(src, gray, CV_BGR2GRAY);
// get full available range
double minGray,maxGray;
cv::minMaxLoc(gray, &minGray, &maxGray);
//suppose current range is 30...220

bool useRelative = true;
if(useRelative)
{
    // Relative clipping dark range to black
    double clipPercent = 10; 
    minGray = cvRound(minGray * (1 + clipPercent/100.0) );
    //all below minGray+10% will become black
}
else
{
    //absolute clipping. Use a fixed lower bound for dark regions
    double minGrayWanted = 50; 
    minGray = minGrayWanted;
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值