我正在為影像實作一個共現矩陣,以便能夠通過亮度的變化來檢測影像的邊緣。所以我制作了一個 256x256 的 numpy 矩陣來存盤同現,然后我寫了一個函式,如果它們之間的變化小于某個特定值(如 30),則將矩陣中所有出現的值都變為 0,即差值矩陣的 i 和 j 之間小于 30,則該單元格內的值變為 0。
這是函式,它采用共生矩陣并將值變為 0。
def nullify(matrix):
for i in range (0,matrix.shape[0]):
for j in range(0,matrix.shape[1]):
if(abs(i-j)<30):
matrix[i,j]=0
return matrix
但出于某種原因,它會將整個矩陣變成 0,當我使用像 3x3 這樣的較小矩陣時,該函式可以完美運行。
這是我用來計算共現的函式
def calculateCooccurrence(im):
Horizontal = np.zeros((256, 256))
for i in range (0,im.size[0]):
for j in range (0,im.size[1]-1):
pixelRGB = im.getpixel((i,j))
R,G,B = pixelRGB
brightness = int(sum([R,G,B])/3)
pixelRGB1 = im.getpixel((i,j 1))
R1,G1,B1 = pixelRGB
brightness1 = int(sum([R1,G1,B1])/3)
Horizontal[brightness,brightness1] =1
Vertical = np.zeros((256, 256))
for i in range (0,im.size[0]-1):
for j in range (0,im.size[1]):
pixelRGB = im.getpixel((i,j))
R,G,B = pixelRGB
brightness = int(sum([R,G,B])/3)
pixelRGB1 = im.getpixel((i 1,j))
R1,G1,B1 = pixelRGB
brightness1 = int(sum([R1,G1,B1])/3)
Vertical[brightness,brightness1] =1
return Horizontal,Vertical
這就是我所做的
horiz,vertic=calculateCooccurrence(im2)
horizon=nullify(horiz)
uj5u.com熱心網友回復:
關于您的代碼,有一些要點。我不知道為什么你的整個矩陣變成零,但這些東西應該對你有幫助:
- 這可能是由于 stackoverflow 中的格式化,但您的矩陣在 i-loop 的第一次迭代后回傳。
- 您實際上并沒有處理矩陣的值。您遍歷范圍 0...256。這會將靠近對角線的所有值設定為 0。根據您說要檢測邊緣的文本,我不確定這是否是您真正想要做的。
- 除了創建一個名為 difference 的變數之外,您還可以將其簡單地放在 if 陳述句中
if(abs(i-j)<30:
編輯:發現問題:您的代碼按預期作業,這就是問題所在。所有元素都在對角線上。我只是自己使用了一張測驗影像,發現np.sum(matrix)并np.trace(matrix)回傳了相同的結果。因此,當您的代碼消除沿對角線的所有元素時,它會將所有元素變為 0。
uj5u.com熱心網友回復:
您的代碼似乎適用于 Python 3.7.7 和 NumPy 1.18.1:
>>> import numpy as np
>>> matrix = np.ones((256, 256))
>>> def nullify(matrix):
... for i in range (0,matrix.shape[0]):
... for j in range(0,matrix.shape[1]):
... if(abs(i-j)<30):
... matrix[i,j]=0
... return matrix
...
>>> nullify(matrix)
array([[0., 0., 0., ..., 1., 1., 1.],
[0., 0., 0., ..., 1., 1., 1.],
[0., 0., 0., ..., 1., 1., 1.],
...,
[1., 1., 1., ..., 0., 0., 0.],
[1., 1., 1., ..., 0., 0., 0.],
[1., 1., 1., ..., 0., 0., 0.]])
可以看到遠離對角線的元素保持不變。您應該提供一個最小的作業示例,說明您的代碼中出了什么問題。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/534919.html
標籤:麻木的蟒蛇成像库
