Próbuję nauczyć OpenCV użyciem Pythona i natknąłem tego kodu poniżej:Matplotlib: Jaka jest funkcja cmap w imshow?
import cv2
import numpy as np
from matplotlib import pyplot as plt
BLUE = [255,0,0]
img1 = cv2.imread('opencv_logo.png')
replicate = cv2.copyMakeBorder(img1,10,10,10,10,cv2.BORDER_REPLICATE)
reflect = cv2.copyMakeBorder(img1,10,10,10,10,cv2.BORDER_REFLECT)
reflect101 = cv2.copyMakeBorder(img1,10,10,10,10,cv2.BORDER_REFLECT_101)
wrap = cv2.copyMakeBorder(img1,10,10,10,10,cv2.BORDER_WRAP)
constant= cv2.copyMakeBorder(img1,10,10,10,10,cv2.BORDER_CONSTANT,value=BLUE)
plt.subplot(231),plt.imshow(img1,'gray'),plt.title('ORIGINAL')
plt.subplot(232),plt.imshow(replicate,'gray'),plt.title('REPLICATE')
plt.subplot(233),plt.imshow(reflect,'gray'),plt.title('REFLECT')
plt.subplot(234),plt.imshow(reflect101,'gray'),plt.title('REFLECT_101')
plt.subplot(235),plt.imshow(wrap,'gray'),plt.title('WRAP')
plt.subplot(236),plt.imshow(constant,'gray'),plt.title('CONSTANT')
plt.show()
źródło: http://docs.opencv.org/master/doc/py_tutorials/py_core/py_basic_ops/py_basic_ops.html#exercises
Co plt.imshow (img1, 'szary') zrobić? Próbowałem przeszukać Google i wszystko co mogłem zrozumieć, to że "szary" argument był mapą kolorów. Ale mój obraz (pic znajduje się na stronie, patrz link) nie jest wyświetlany w skali szarości. Próbowałem usunąć drugi argument. Kod był więc podobny do plt.imshow (img1). Wykonuje. Obraz pozostaje taki sam jak wcześniej. Więc co robi drugi argument "szary"? Czy ktoś może mi to wszystko wyjaśnić? Każda pomoc doceniona. Dzięki.
PS. Jestem zupełnie nowy w matplotlib
Dzięki. Czy możesz wyjaśnić, do czego służy cmap? Dlaczego używamy map kolorów? – Clive
Colormap to słownik, który mapuje liczby do kolorów. Matplotlib udostępnia wiele [wbudowanych map kolorów] (http://wiki.scipy.org/Cookbook/Matplotlib/Show_colormaps). Kiedy masz tablicę 2D, taką jak "dane" powyżej, wartości w każdym punkcie siatki są wartościami zmiennymi między 0 a 1. Barwna "colormap" odwzorowuje 0 na czarny i 1 na biały. Colormap 'jet' mapuje 0 na niebieski i 1 na czerwony. Zobacz link do wizualnego wyświetlania kolorów pomiędzy. – unutbu
dziękuję bardzo – Clive