我需要將下面顯示的代碼塊轉換為Python.我建立了两个名為
u
的陣列
和
v
分別將它们放在for迴圈中,範圍从0到M-1,我知道
find
与if條件類似.我有一个問题,因為两个
idx
和
u
是陣列。
MATLAB代碼是這樣的:
u = 0:(M-1);
v = 0:(N-1);
idx = find(u > M/2);
u(idx) = u(idx) - M; #I have a problem here
idy = find(v > N/2);
v(idy) = v(idy) - N;
基本上,我在Python中所做的工作直到出現問题行為止:
input_image = Image.open('./....image....')
input_image=np.array(input_image)
M,N = input_image.shape[0],input_image.shape[1]
FT_img = fftpack.fftshift(fftpack.fft2(input_image))
# Assign the order value
n = 2; # one can change this value accordingly
# Assign Cut-off Frequency
D0 = 60; # one can change this value accordingly
# Designing filter
u=[]
v=[]
for i in range(M-1):
u.append(i)
for i in range(N-1):
v.append(i)
最新回復
- 5月前1 #
相似問題
- python:重複numpy陣列的每个元素5次pythonarraysnumpyrepeat2021-01-11 22:25
- python:子集2D numpy陣列pythonarraysnumpymultidimensionalarraysubset2021-01-11 01:28
- matlab:根据計數按元素进行陣列複製arraysmatlabrepeatrunlengthencodingelementwiseoperations2021-01-10 21:55
您的MATLAB代碼
通過省略find
可以更有效地實現:
這種形式可以通過NumPy轻松轉換為Python: