Почему при применении маски ядра для получения гауссовских изображений выводятся только белые изображения без содержимого? - PullRequest
0 голосов
/ 20 марта 2019

Это мой код, и я пытаюсь сделать изображение более синим, но там нет изображений, отображаются только белые изображения, я не знаю, в чем проблема:

from sklearn.cluster import KMeans
import matplotlib.pyplot as plt
import numpy as np
import cv2
from collections import Counter
from skimage.color import rgb2lab, deltaE_cie76
import os

%matplotlib inline
image = cv2.imread('C://Users/user/Desktop/g.jpg')
print("The type of this input is {}".format(type(image)))
print("Shape: {}".format(image.shape))
plt.imshow(image)
image= np.array(image, dtype=np.uint8)
image= cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
k = np.array(np.ones((11, 11), np.float64))/121
k = np.array(([2, 2, 2], [2, 3, 2], [2, 2, 2]), 
np.float64)
k = k / 19
print(k)
output = cv2.filter2D(image, -1,  k)
plt.subplot(1, 2, 1)
cv2.imshow('original', image)
plt.title('Original Image')
plt.subplot(1, 2, 2)
cv2.imshow('filter img', output)
plt.title('Filtered Image')
plt.show()
cv2.imshow('original', image)

Вот что я получаю:

output

1 Ответ

1 голос
/ 21 марта 2019

Как отметил Марк Сетчелл в комментарии, вы путаете cv2.imshow () и plt.show (). Во время тестирования у меня умерло ядро. Я исправил последние строки вашего

output = cv2.filter2D(image, -1,  k)
plt.subplot(121), plt.imshow(image), plt.title('Original')
plt.subplot(122), plt.imshow(output), plt.title('Filtered Image')

Остальные строки могут остаться без изменений. (Правка: кроме той части, где вы назначаете k три раза, как упоминал Марк Сетчелл, вам, возможно, следует исправить и эту часть)

...