簡體   English   中英

僅為圖像的特定點計算相鄰像素的平均像素強度並存儲在 n 維數組中

[英]Calculating the average pixel intensity for neighboring pixels only for specific points of an image and storing inside a n-dimensional array

我正在從事一項人臉識別任務,我想提取人臉特征,但只是從人臉圖像中的特定關鍵位置提取。 但是對於這樣的任務,我需要計算該特定部分相鄰區域的平均像素值。 由於沒有算法,我是手動完成的。 這是一個詳盡的過程。 這就是我的做法:

img = plt.imread(path)
img[25, 40] = 0
img[25, 41] = 0
img[25, 39] = 0
img[26, 40] = 0
img[26, 39] = 0
img[26, 41] = 0
img[24, 39] = 0
img[24, 40] = 0
img[24, 41] = 0
img[25, 110] = 0
img[25, 111] = 0
img[25, 109] = 0
img[24, 109] = 0
img[24, 110] = 0
img[24, 111] = 0
img[26, 109] = 0
img[26, 110] = 0
img[26, 111] = 0
img[25, 170] = 0
img[25, 171] = 0
img[25, 169] = 0
img[24, 170] = 0
img[24, 171] = 0
img[24, 169] = 0
img[26, 170] = 0
img[26, 169] = 0
img[26, 171] = 0
img[40, 40] = 0
img[40, 41] = 0
img[40, 39] = 0
img[41, 40] = 0
img[41, 41] = 0
img[41, 39] = 0
img[39, 40] = 0
img[39, 39] = 0
img[39, 41] = 0
img[50, 110] = 0
img[50, 111] = 0
img[50, 109] = 0
img[51, 110] = 0
img[51, 111] = 0
img[51, 109] = 0
img[49, 110] = 0
img[40, 170] = 0
img[40, 171] = 0
img[40, 169] = 0
img[39, 170] = 0
img[39, 171] = 0
img[39, 169] = 0
img[41, 170] = 0
img[41, 171] = 0
img[41, 169] = 0

plt.imshow(img)

我想做的基本上是有一種更好的方法來計算圖像中20個坐標中心周圍3x3像素的平均值並將其存儲在n維向量中。 或者為了更清楚地說明:對於選擇的關鍵點 1,計算 3x3 鄰域中的平均值,存儲該值。 關鍵點 2 計算 3x3 鄰域的平均值,存儲該值。 對於與圖像中的坐標 x 和 y 對應的任何給定關鍵點。 在此處輸入圖像描述

每個關鍵點是具有 3x3 像素的網格的平均值,我需要獲取平均值並將其存儲在 20d 數組中。 最好的方法是什么?

在 Python/OpenCv 中,只需使用 cv2.blur() 對整個圖像進行 3x3 塊平均。 然后只需在您想要的點處獲取模糊圖像中的像素值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM