最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python3+opencv 使用灰度直方圖來判斷圖片的亮暗操作

 更新時間:2020年06月02日 11:31:12   作者:ZJE_ANDY  
這篇文章主要介紹了python3+opencv 使用灰度直方圖來判斷圖片的亮暗操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

1.如何讓計算機自動判斷一張圖是否偏暗?或是判斷一張圖是否是處于夜晚?我們可以先把圖片轉換為灰度圖,然后根據(jù)灰度值的分布來判斷,如:

我們可以從上圖看到,晚上的圖片的灰度值是集中在前段的,如0~30多左右,我們再看一張比較明亮的圖片:

明亮的圖片的灰度直方圖是比較靠后的.

因此要判斷圖片的亮暗,只需要統(tǒng)計偏暗的像素個數(shù),再除以圖片像素的總個數(shù),得到百分比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);
	#獲取灰度圖矩陣的行數(shù)和列數(shù)
	r,c = gray_img.shape[:2];
	dark_sum=0;	#偏暗的像素 初始化為0個
	dark_prop=0;	#偏暗像素所占比例初始化為0
	piexs_sum=r*c;	#整個弧度圖的像素個數(shù)為r*c
	
	#遍歷灰度圖的所有像素
	for row in gray_img:
		for colum in row:
			if colum<40:	#人為設置的超參數(shù),表示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:	#人為設置的超參數(shù):表示若偏暗像素所占比例超過0.78,則這張圖被認為整體環(huán)境黑暗的圖片
		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;
 
#創(chuàng)建用于存放黑暗圖片的目錄
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 使用灰度直方圖來判斷圖片的亮暗操作就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • 深入淺析Python中的yield關鍵字

    深入淺析Python中的yield關鍵字

    python中有一個非常有用的語法叫做生成器,所利用到的關鍵字就是yield。接下來腳本之家小編給大家?guī)砹薖ython中的yield關鍵字詳細解析,感興趣的朋友參考下吧
    2018-01-01
  • Python如何操作docker redis過程解析

    Python如何操作docker redis過程解析

    這篇文章主要介紹了Python如何操作docker redis過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-08-08
  • 通過自學python能找到工作嗎

    通過自學python能找到工作嗎

    在本篇內容里小編給大家分享的是一篇關于通過自學python能找到工作嗎的分析內容,對此有興趣的朋友們可以參考下。
    2020-06-06
  • Python使用sorted排序的方法小結

    Python使用sorted排序的方法小結

    這篇文章主要介紹了Python使用sorted排序的方法,結合三個實例分析了Python使用sorted方法進行元素排序操作的相關實現(xiàn)技巧,需要的朋友可以參考下
    2017-07-07
  • 使用Python刷淘寶喵幣(低階入門版)

    使用Python刷淘寶喵幣(低階入門版)

    這篇文章主要介紹了使用Python刷淘寶喵幣(低階入門版)的相關資料,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-10-10
  • Django權限機制實現(xiàn)代碼詳解

    Django權限機制實現(xiàn)代碼詳解

    這篇文章主要介紹了Django權限機制實現(xiàn)代碼詳解,分享了相關代碼示例,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下
    2018-02-02
  • Python實現(xiàn)從線程獲取返回值

    Python實現(xiàn)從線程獲取返回值

    本文介紹了Python中線程的概念、創(chuàng)建線程的方法和在線程中獲取函數(shù)返回值的技巧,線程作為進程中的執(zhí)行單元,可以實現(xiàn)程序的并發(fā)運行,文章通過示例代碼展示了如何在Python中使用Thread類創(chuàng)建線程,并講解了在線程中傳遞參數(shù)和獲取返回值的方法
    2024-09-09
  • Python檢查判斷一個數(shù)是不是另一個數(shù)的整數(shù)次冪實例深究

    Python檢查判斷一個數(shù)是不是另一個數(shù)的整數(shù)次冪實例深究

    在數(shù)學和計算中,確定一個數(shù)是否為另一個數(shù)的整數(shù)次冪是一個常見而重要的問題,例如,我們可能需要判斷一個數(shù)是否是某個數(shù)的平方、立方或其他冪次,本文將探討在Python中如何實現(xiàn)這一功能,通過數(shù)學方法和算法檢查一個數(shù)是否是另一個數(shù)的整數(shù)次冪
    2023-12-12
  • python導出requirements.txt的幾種方法以及環(huán)境配置詳細流程

    python導出requirements.txt的幾種方法以及環(huán)境配置詳細流程

    這篇文章主要給大家介紹了關于python導出requirements.txt的幾種方法以及環(huán)境配置詳細流程,requirements.txt 文件是一個文本文件,用于列出你的Python項目所依賴的軟件包及其版本,需要的朋友可以參考下
    2023-11-11
  • tensorflow建立一個簡單的神經(jīng)網(wǎng)絡的方法

    tensorflow建立一個簡單的神經(jīng)網(wǎng)絡的方法

    本篇文章主要介紹了tensorflow建立一個簡單的神經(jīng)網(wǎng)絡的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-02-02

最新評論

平武县| 安庆市| 桦甸市| 睢宁县| 平湖市| 清流县| 绥滨县| 沂水县| 清涧县| 富宁县| 双牌县| 铁力市| 景宁| 南投县| 永修县| 辽阳市| 犍为县| 庐江县| 泾阳县| 长宁区| 隆安县| 安福县| 丘北县| 濉溪县| 罗定市| 永丰县| 罗甸县| 翼城县| 博爱县| 北票市| 东阿县| 资溪县| 泸西县| 河北省| 青浦区| 井冈山市| 当雄县| 唐山市| 兴化市| 修文县| 舟曲县|