Her hücre için 4 komşu mahallenin ürününü hesaplamayı içeren bir görüntü işleme algoritması uygulamaya çalışıyorum. Yani, y[i, j] = x[i-1, j] * x[i, j-1] * x[i+1, j] * x[i, j+1]
'un X için yeni bir matrisini hesaplamaktır. Sınır dışı komşular göz ardı edilmelidir.Her hücre için mahallenin ürününü numpy/scipy ile bir matris içinde hesaplayın
Şimdi sadece bu yaklaşımın düşünebilirsiniz: scipy.ndimage.filters.correlate
kullanabilir ve sıfırlarla ağırlıkları geçmek ve bir 1 weight = [[0, 0, 0], [1, 0, 0], [1, 1]]
geçen gibi her biri bir yöne her hücre için komşu içeren dört matris olsun ve ben a[i, j] = x[i-1, j]
olsun ve Diğer ağırlıklar ile b[i, j] = x[i, j-1]
, c[i, j] = x[i+1, j]
, d[i, j] = x[i, j+1]
elde edebilirim. Daha sonra bu dört matrisin ürününü hesaplamak için np.multiply
kullanın. Ancak, bu yaklaşım biraz fazla yavaş ve sınırları göz ardı edemiyorum. Numpy/scipy ile yapmanın başka bir yolu var mı bu yüzden döngüler için başvurmak zorunda değilim?
İlk önce günlükleri aldıysanız, bu bir ek olacaktır. – Paul
2x2 konvolution Discrete Laplace operatörü, eklendikten sonra oldukça yakın olacaktır. Sadece merkezi terimini iptal etmeniz gerekiyor. http://en.wikipedia.org/wiki/Discrete_Laplace_operator http://docs.scipy.org/doc/scipy/reference/generated/scipy.ndimage.filters.laplace.html – Paul
@Paul Yardımlarınız için teşekkürler, ancak matriste negatif sayılar olsun, bu yüzden önce günlükleri alamıyorum. – Joyee