У меня есть код, который отображает области MISER изображения:
import numpy as np
import cv2
import sys
import matplotlib.pyplot as plt
imp1 = sys.argv[1]
img1 = cv2.imread(imp1)
mser = cv2.MSER()
gray = cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY)
vis = img1.copy()
regions = mser.detect(gray, None)
hulls = [cv2.convexHull(p.reshape(-1, 1, 2)) for p in regions]
cv2.polylines(vis, hulls, 1, (0, 255, 0))
def plot_stuff(img1, img1_name, img2, img2_name):
fig,axes = plt.subplots(1,2,figsize=(15,6))
axes[0].imshow(img1, cmap='Greys_r')
axes[0].set_title(img1_name)
axes[1].imshow(img2)
axes[1].set_title(img2_name)
fig.suptitle("All Images")
plt.show()
plot_stuff(img1, 'Original', vis, 'MISER Regions')
И он отлично работает, за исключением того, что он синий:
Вот тут-то я и застрял. Потому что что бы я ни делал, я не могу заставить его отображать изображение серым, а линии MISER зелеными. Он продолжает возвращаться струей:
Даже когда я показываю только изображение, оно все равно возвращает реактивный самолет. Почему нет цветовой карты RGB? А еще лучше, зачем вообще нужна цветовая карта, почему она не может просто показать обычное изображение?