



下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第Python实现特定场景去除高光算法详解blockImage=blockImage-average
blockImage2=cv2.resize(blockImage,(gray.shape[1],gray.shape[0]),interpolation=cv2.INTER_CUBIC)
gray2=gray.astype(np.float32)
dst=gray2-blockImage2
dst[dst255]=255
dst[dst0]=0
dst=dst.astype(np.uint8)
dst=cv2.GaussianBlur(dst,(3,3),0)
#dst=cv2.cvtColor(dst,cv2.COLOR_GRAY2BGR)
returndst
if__name__=='__main__':
file='www.png'
blockSize=8
img=cv2.imread(file)
b,g,r=cv2.split(img)
dstb=unevenLightCompensate(b,blockSize)
dstg=unevenLightCompensate(g,blockSize)
dstr=unevenLightCompensate(r,blockSize)
dst=cv2.merge([dstb,dstg,dstr])
result=np.concatenate([img,dst],axis=1)
cv2.imwrite('result.jpg',result)
实验效果
补充
OpenCV实现光照去除效果
1.方法一(RGB归一化)
intmain(intargc,char*argv[])
//doubletemp=255/log(256);
//cout"doubledoubletemp="tempendl;
Matimage=imread("D://vvoo//sun_face.jpg",1);
if(!image.data)
cout"imageloadingerror"endl;
return-1;
imshow("原图",image);
Matsrc(image.size(),CV_32FC3);
for(inti=0;iimage.rows;i++)
for(intj=0;jimage.cols;j++)
src.atVec3f(i,j)[0]=255*(float)image.atVec3b(i,j)[0]/((float)image.atVec3b(i,j)[0]+(float)image.atVec3b(i,j)[2]+(float)image.atVec3b(i,j)[1]+0.01);
src.atVec3f(i,j)[1]=255*(float)image.atVec3b(i,j)[1]/((float)image.atVec3b(i,j)[0]+(float)image.atVec3b(i,j)[2]+(float)image.atVec3b(i,j)[1]+0.01);
src.atVec3f(i,j)[2]=255*(float)image.atVec3b(i,j)[2]/((float)image.atVec3b(i,j)[0]+(float)image.atVec3b(i,j)[2]+(float)image.atVec3b(i,j)[1]+0.01);
normalize(src,src,0,255,CV_MINMAX);
convertScaleAbs(src,src);
imshow("rgb",src);
imwrite("C://Users//TOPSUN//Desktop//123.jpg",src);
waitKey(0);
return0;
}
实现效果
2.方法二
voidunevenLightCompensate(Matimage,intblockSize)
if(image.channels()==3)cvtColor(image,image,7);
doubleaverage=mean(image)[0];
introws_new=ceil(double(image.rows)/double(blockSize));
intcols_new=ceil(double(image.cols)/double(blockSize));
MatblockImage;
blockImage=Mat::zeros(rows_new,cols_new,CV_32FC1);
for(inti=0;irows_new;i++)
for(intj=0;jcols_new;j++)
introwmin=i*blockSize;
introwmax=(i+1)*blockSize;
if(rowmaximage.rows)rowmax=image.rows;
intcolmin=j*blockSize;
intcolmax=(j+1)*blockSize;
if(colmaximage.cols)colmax=image.cols;
MatimageROI=image(Range(rowmin,rowmax),Range(colmin,colmax));
doubletemaver=mean(imageROI)[0];
blockImage.atfloat(i,j)=temaver;
blockImage=blockImage-average;
MatblockImage2;
resize(blockImage,blockImage2,image.size(),(0,0),(0,0),INTER_CUBIC);
Matimage2;
image.convertTo(image2,CV_32FC1);
Matdst=image2-blockImage2;
dst.convertTo(image,CV_8UC1);
intmain(intargc,char*argv[])
//doubletemp=255/log(256);
//cout"doubledoubletemp="tempendl;
Matimage=imread("C://Users//TOPSUN//Desktop//2.jpg",1);
if(!image.data)
cout"imageloadingerror"endl;
return-1;
imshow("原
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 跨领域项目合作协议
- 工业设计产品设计理念与案例分析
- 航空航天材料工程考试试题集
- 现代管理学基础理论学习题集
- 运动训练理论与实践题
- 2025年工程成本预测试题及答案
- 2024年天然植物纤维及人造纤维编织工艺品项目投资申请报告代可行性研究报告
- 犯罪分析测试题及答案
- 跨部门协作的成功要素计划
- 多元化工作方法的探索计划
- 年处理24万吨焦油常减压蒸馏车间设计书
- GB/T 536-2017液体无水氨
- GB/T 11361-2008同步带传动梯形齿带轮
- GB 5009.121-2016食品安全国家标准食品中脱氢乙酸的测定
- 《电业安全工作规程》
- 处置室工作制度(6篇)
- 二次配线工艺标准守则
- 骨髓穿刺术评分表
- 海底捞火锅店各岗位职责
- 发证机关所在地区代码表
- Q∕GDW 10799.7-2020 国家电网有限公司电力安全工作规程 第7部分:调相机部分
评论
0/150
提交评论