Как отобразить изображение в цвете, а также создать гистограмму изображения в оттенках серого? - PullRequest
0 голосов
/ 09 июля 2020

Я хотел бы знать, как я могу отобразить изображение в цвете, затем преобразовать это изображение как в оттенки серого, так и в двоичный, и, наконец, создать гистограмму из версии в оттенках серого. Также было бы полезно иметь возможность печатать область двоичного изображения / изображения в оттенках серого в пикселях в консоли. Сейчас мое исходное изображение отображается в оттенках серого, как только я его показываю, и я хотел бы, чтобы оно было цветным. Я читаю на двух изображениях: «heart_rotated» и «mol_1». Я считаю, что у меня правильно настроены гистограммы для каждого, но поскольку я читаю их неправильно, гистограммы неверны. Вот мой код, и спасибо вам большое!

import matplotlib.pyplot as plt
from skimage import data #built in images .camera and .cell for test
import skimage.transform as transform
from skimage.color import rgb2gray
from skimage.exposure import histogram
from skimage.filters import threshold_minimum #automated threshold
from skimage.filters import try_all_threshold 
from skimage.filters import threshold_mean  
import skimage.filters
import matplotlib.image as mpimg
import numpy as np
import skimage.morphology as morph
import skimage.measure as meas
from skimage.measure import regionprops
import cv2
import math
import sklearn

hr2 = cv2.imread('heart_rotated.png', 2)
thresh = threshold_mean(hr2)
binaryhr2 = hr2 < thresh
grayhr2 = rgb2gray(hr2)


plt.figure(1)

hr2hist, bin_edges = np.histogram(binaryhr2, bins = 256)
plt.title('Grayscale Heart Rotated Histogram')
plt.xlim([-0.2,1.2])
plt.plot(bin_edges[0:-1], hr2hist)
plt.show()
fig, axes = plt.subplots(ncols = 3, figsize = (8, 8))
ax = axes.ravel()
ax[0] = plt.subplot(1, 3, 1)
ax[1] = plt.subplot(1, 3, 2)
ax[2] = plt.subplot(1, 3, 3)


plt.figure(2)
ax = axes.ravel()
ax[0].imshow(hr2, cmap = plt.cm.gray)
ax[0].set_title('Heart Rotated')

ax[1].imshow(grayhr2, cmap = plt.cm.gray)
ax[1].set_title('Grayscale Heart Rotated') 

ax[2].imshow(binaryhr2, cmap = plt.cm.gray)
ax[2].set_title('Binary Heart Rotated')

for a in ax:
    a.axis('off')
plt.show()


mole = cv2.imread('mole_1.png', 2)
thresh = threshold_mean(mole)
binarymole = mole < thresh
graymole = rgb2gray(mole)


plt.figure(3)

molehist, bin_edges = np.histogram(binarymole, bins = 256)
plt.title('Grayscale Mole  Histogram')
plt.xlim([-0.2,1.2])
plt.plot(bin_edges[0:-1], molehist)
plt.show()
fig, axes = plt.subplots(ncols = 3, figsize = (8, 8))
ax = axes.ravel()
ax[0] = plt.subplot(1, 3, 1)
ax[1] = plt.subplot(1, 3, 2)
ax[2] = plt.subplot(1, 3, 3)


plt.figure(4)
ax = axes.ravel()
ax[0].imshow(mole, cmap = plt.cm.gray)
ax[0].set_title('Mole')

ax[1].imshow(graymole, cmap = plt.cm.gray)
ax[1].set_title('Grayscale Mole')

ax[2].imshow(binarymole, cmap = plt.cm.gray)
ax[2].set_title('Binary Mole')

for a in ax:
    a.axis('off')
plt.show()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...