python統(tǒng)計(jì)RGB圖片某像素的個(gè)數(shù)案例
1.對(duì)于RGB三通道圖片,直接用兩層for循環(huán)的話,效率比較低
2.可以先將RGB圖片轉(zhuǎn)為灰度圖片,再利用numpy.where的廣播機(jī)制統(tǒng)計(jì)像素個(gè)數(shù)。這里有一個(gè)前提是提前知道與灰度圖片的像素值相對(duì)應(yīng)RGB顏色。
代碼如下:
from PIL import Imageimport numpy as npimport cv2img_L = np.array(Image.open(’test.png’).convert('L'))img_RGB = np.array(Image.open(’test.png’).convert('RGB'))# temp = {}# for i in range(img_L.shape[0]):# for j in range(img_L.shape[1]):# if not temp.get(int(img_L[i][j])):# temp[int(img_L[i][j])] = list(img_RGB[i][j])# print(temp)#這里得到灰度像素值0對(duì)應(yīng)(0,0,0),62對(duì)應(yīng)(19,69,139)color_0_0_0 = np.where(img_L == 0)[0].shape[0]color_19_69_139 = np.where(img_L == 62)[0].shape[0]pixel_sum = img_L.shape[0] * img_L.shape[1]print('0_0_0 像素個(gè)數(shù):{} 占比:%{}'.format(color_0_0_0,color_0_0_0/pixel_sum*100))print('19_69_139 像素個(gè)數(shù):{} 占比:%{}'.format(color_19_69_139,color_19_69_139/pixel_sum*100))
補(bǔ)充:OpenCV---如何統(tǒng)計(jì)圖像的像素分布值個(gè)數(shù)(6)
代碼如下:import cv2 as cvimport matplotlib.pyplot as pltimport numpy as npdef statistics(): src = cv.imread('D:/matplotlib/0.jpg') cv.imshow('q',src) h,w,ch = np.shape(src) gray = cv.cvtColor(src,cv.COLOR_BGR2GRAY) cv.imshow('gray',gray) hest = np.zeros([256],dtype = np.int32) for row in range(h): for col in range(w): pv = gray[row,col] hest[pv] +=1 plt.plot(hest,color = 'r') plt.xlim([0,256]) plt.show() cv.waitKey(0) cv.destroyAllWindows()statistics()運(yùn)行效果:
像素分布統(tǒng)計(jì)圖
代碼解釋:import cv2 as cvimport matplotlib.pyplot as pltimport numpy as npdef statistics(): src = cv.imread('D:/matplotlib/0.jpg') cv.imshow('q',src) h,w,ch = np.shape(src) #讀取圖像屬性 gray = cv.cvtColor(src,cv.COLOR_BGR2GRAY) #將圖像轉(zhuǎn)換成灰度圖, cv.imshow('gray',gray) hest = np.zeros([256],dtype = np.int32) #建立空白數(shù)組 for row in range(h): for col in range(w): pv = gray[row,col] hest[pv] +=1 #統(tǒng)計(jì)不同像素值出現(xiàn)的頻率 plt.plot(hest,color = 'r') plt.xlim([0,256]) plt.show() #畫出統(tǒng)計(jì)圖 cv.waitKey(0) cv.destroyAllWindows()statistics()
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章:
1. ASP實(shí)現(xiàn)加法驗(yàn)證碼2. 無線標(biāo)記語言(WML)基礎(chǔ)之WMLScript 基礎(chǔ)第1/2頁3. ASP刪除img標(biāo)簽的style屬性只保留src的正則函數(shù)4. PHP循環(huán)與分支知識(shí)點(diǎn)梳理5. ASP基礎(chǔ)入門第三篇(ASP腳本基礎(chǔ))6. 利用CSS3新特性創(chuàng)建透明邊框三角7. 解析原生JS getComputedStyle8. css代碼優(yōu)化的12個(gè)技巧9. 前端從瀏覽器的渲染到性能優(yōu)化10. 讀大數(shù)據(jù)量的XML文件的讀取問題
