Я создал функцию, которая преобразует изображение в изображение в оттенках серого, а также двоичное изображение для изображения. Однако возвращаемое значение (которое должно быть двоичным изображением) выходит пурпурным и желтым. Когда я делаю cmap = 'gray' в функции, это получается правильно, однако я не могу этого сделать при возврате. Как я могу исправить это?
Мой текущий код:
def greyscale_and_binary(file, file_name):
'''
this function graphs a histogram for the greyscale for the file inputed. It converts the image to grayscale image
It also creates a binary image for the file
Parameters
----------
file : Array of float32
the image.
file_name : str
name of the file to be ouputted on the graph.
Returns
-------
binary_file : array of bool
binary of the file/image.
'''
gray_file = rgb2grey(file) #convert to grayscale
threshold = skimage.filters.threshold_otsu(gray_file) #input value
binary_file = (gray_file < threshold) #binary is when less than trheshold
#plot histogram on grayscale image
histogram, bin_edges = np.histogram(gray_file, bins = 256, range=(0,1))
plt.title('Histogram of gray scale values:'+ file_name)
plt.axvline(threshold, color = 'r', label = 'threshold') #threshold marked with a red vertical line
plt.legend()
plt.plot(bin_edges[0:-1], histogram)
#plot binary, original image and gray scale image next to each other
fig, axes = plt.subplots(ncols=3, figsize=(8,3))
ax = axes.ravel()
ax[0].imshow(file)
ax[0].set_title('original')
ax[1].imshow(gray_file, cmap = 'gray')
ax[1].set_title('grayscale')
ax[2].imshow(binary_file, cmap = 'gray')
ax[2].set_title('binary')
#remove axis
for a in ax:
a.axis('off')
fig.tight_layout()
plt.show()
return binary_file
binarys = greyscale_and_binary(image, 'image')
binarys = morph.remove_small_objects(binarys)
img_blob = morph.remove_small_holes(binarys)
Кроме того, мои последние две функции не работают. Он не удаляет мелкие предметы или маленькие отверстия. Любая причина, почему или как это исправить?
Мой график для двоичных файлов (повернутый) по сравнению с моим желаемым результатом
введите описание изображения здесь