圆月山庄资源网 Design By www.vgjia.com
1.如何让计算机自动判断一张图是否偏暗"" src="/UploadFiles/2021-04-08/20200602112736.jpg">
我们可以从上图看到,晚上的图片的灰度值是集中在前段的,如0~30多左右,我们再看一张比较明亮的图片:
明亮的图片的灰度直方图是比较靠后的.
因此要判断图片的亮暗,只需要统计偏暗的像素个数,再除以图片像素的总个数,得到百分比p即可,至于p大于多少即判断为暗,则可以由你自己设置.下面给出代码,此代码可以在装满图片的目录里选出偏暗的图片,然后把这些图片保存下来.
2.代码:
import cv2; import numpy as np; import matplotlib.pyplot as plt; import os; import sys; def func(img,pic_path,pic): #把图片转换为灰度图 gray_img = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY); #获取灰度图矩阵的行数和列数 r,c = gray_img.shape[:2]; dark_sum=0; #偏暗的像素 初始化为0个 dark_prop=0; #偏暗像素所占比例初始化为0 piexs_sum=r*c; #整个弧度图的像素个数为r*c #遍历灰度图的所有像素 for row in gray_img: for colum in row: if colum<40: #人为设置的超参数,表示0~39的灰度值为暗 dark_sum+=1; dark_prop=dark_sum/(piexs_sum); print("dark_sum:"+str(dark_sum)); print("piexs_sum:"+str(piexs_sum)); print("dark_prop=dark_sum/piexs_sum:"+str(dark_prop)); if dark_prop >=0.75: #人为设置的超参数:表示若偏暗像素所占比例超过0.78,则这张图被认为整体环境黑暗的图片 print(pic_path+" is dark!"); cv2.imwrite("../DarkPicDir/"+pic,img);#把被认为黑暗的图片保存 else: print(pic_path+" is bright!") #hist(pic_path); #若要查看图片的灰度值分布情况,可以这个注释解除 #用于显示图片的灰度直方图 def hist(pic_path): img=cv2.imread(pic_path,0); hist = cv2.calcHist([img],[0],None,[256],[0,256]) plt.subplot(121) plt.imshow(img,'gray') plt.xticks([]) plt.yticks([]) plt.title("Original") plt.subplot(122) plt.hist(img.ravel(),256,[0,256]) plt.show() #读取给定目录的所有图片 def readAllPictures(pics_path): if not os.path.exists(pics_path): print("路径错误,路径不存在!") return; allPics = []; pics = os.listdir(pics_path); for pic in pics: pic_path = os.path.join(pics_path,pic); if os.path.isfile(pic_path): allPics.append(pic_path); img=cv2.imread(pic_path); func(img,pic_path,pic); return allPics; #创建用于存放黑暗图片的目录 def createDarkDir(): DarkDirPath = "../DarkPicDir"; isExists = os.path.exists(DarkDirPath); if not isExists: os.makedirs(DarkDirPath); print("dark pics dir is created successfully!"); return True; else: return False; if __name__ =='__main__': pics_path = sys.argv[1];#获取所给图片目录 createDarkDir(); allPics=readAllPictures(pics_path);
运行命令: python3 cal.py 图片集的路径名
(其中cal.py 是python代码的文件名)
运行结果:
然后进入装黑暗图片的目录里,就会看到从空目录变成装有黑暗图片:
以上这篇python3+opencv 使用灰度直方图来判断图片的亮暗操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
圆月山庄资源网 Design By www.vgjia.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
圆月山庄资源网 Design By www.vgjia.com
暂无评论...
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
2024年11月02日
2024年11月02日
- 伍佰.2002-冬之火九重天演唱会特选录音专辑2CD【滚石】【WAV+CUE】
- 李宗盛1996《李宗盛的凡人歌2CD》滚石[WAV+CUE][1G]
- 刘德华 《天意》1:1直刻黑胶LPCD[WAV+CUE][1.1G]
- 刘德丽2024《赤的疑惑HQCD》头版限量编号MQA[低速原抓WAV+CUE]
- 英雄联盟万圣节有什么皮肤返场 2024万圣节皮肤返场一览
- lol万圣节赠礼活动什么时候开始 2024万圣节活动时间介绍
- 2024全球总决赛blg是全华班吗 全球总决赛blg选手所属国家介绍
- 《LOL》S14半决赛:T1战胜GEN晋级决赛!对决BLG
- 《完蛋美女前传》白白演员抱怨:都没人玩我的线
- 玩家热议OLED屏对画面提升巨大:比PS5 Pro值得买
- PatriciaPaay-TheLadyIsAChamp(ExpandedEdition)(2024)[24Bit-96kHz]FLAC
- 尚士达.2024-莫回头【智慧小狗】【DTS-WAV分轨】
- 区瑞强-黄金时代HQCDII头版限量wav
- 孙露《终于等到你》[WAV分轨][488M]
- 张信哲《歌时代》 潮水音乐 [WAV+CUE]