Я использую и знаком с cv2
, сегодня я давал попытку с skimage
.
Я пытался прочитать изображение, используя skimage
и cv2
. Кажется, они оба отлично читают изображение. Но когда я строю гистограммы изображения, но читаю через разные библиотеки (skimage
и cv2
), гистограмма показывает существенную разницу.
Кто-нибудь мне поможет, объяснив разницу между гистограммами?
Мой код:
import cv2
import skimage.io as sk
import numpy as np
import matplotlib.pyplot as plt
path = '../../img/lenna.png'
img1 = sk.imread(path, True)
img2 = cv2.imread(path, cv2.IMREAD_GRAYSCALE)
print(img1.shape)
print(img2.shape)
plt.subplot(2, 2, 1)
plt.imshow(img1, cmap='gray')
plt.title('skimage read')
plt.xticks([])
plt.yticks([])
plt.subplot(2, 2, 2)
plt.imshow(img2, cmap='gray')
plt.title('cv2 read')
plt.xticks([])
plt.yticks([])
plt.subplot(2, 2, 3)
h = np.histogram(img1, 100)
plt.plot(h[0])
plt.title('skimage read histogram')
plt.subplot(2, 2, 4)
h = np.histogram(img2, 100)
plt.plot(h[0])
plt.title('cv2 read histogram')
plt.show()
Вывод текста:
(512, 512)
(512, 512)
Вывод:
Редактировать:
Вот входное изображение: