У меня есть набор изображений в массиве NumPy.После некоторой обработки и применения порога я превратил их в изображения, которые имеют значение 0 или 1 в каждой координате xy.Я хочу использовать цикл for и ненулевое значение, чтобы повернуть координаты xy исходного изображения, которые не находятся в ненулевом массиве, в ноль и оставить пиксели в ненулевом массиве с их исходной интенсивностью.Я полный новичок в программировании, и мне дали эту задачу.
Это то, что у меня есть, но последняя часть не работает:
import cv2
# Taking the first image of the data
image = series_copy2[0,:,:]
# Mean total background of the image
print('Mean total background = ' +str(np.mean(image)) + ' counts.')
# Threshold for background removal
threshold =30
# Setting all pixels below a threshold to zero to remove the background
image[image[:,:] < threshold] = 0
image[image[:,:]>threshold]=1
# Plotting the result for checking
fig = plt.figure(figsize=(10,10))
ax = fig.add_subplot(111)
data = image
plt.tight_layout()
im = plt.imshow(data, interpolation = 'nearest')
np.transpose(np.nonzero(data))
nz_arrays=np.transpose(np.nonzero(data))
#this doesn't work
for x in data:
if image[image[:,:] not in nz_arrays]=0
# Plotting the result for checking
fig = plt.figure(figsize=(10,10))
ax = fig.add_subplot(111)
data = image
plt.tight_layout()
im = plt.imshow(data, interpolation = 'nearest')