【发布时间】:2019-07-08 18:18:15
【问题描述】:
如何在 python 中使用 OpenCV 仅显示 RGB 图像中的一种颜色? 这个想法是能够以与RGB光谱中某种颜色的强度相对应的灰度打印图像。
【问题讨论】:
如何在 python 中使用 OpenCV 仅显示 RGB 图像中的一种颜色? 这个想法是能够以与RGB光谱中某种颜色的强度相对应的灰度打印图像。
【问题讨论】:
您可以使用split:
blue, green, red = cv2.split(img)
或者,由于这是一项耗时的操作,并且您只需要其中一个通道(例如,红色),您可以直接对原始图像进行切片,如下所示:
red = img[:,:,2]
这将返回灰度图像,其中较亮的像素是原始图像中具有较高红色值的像素。
希望这有帮助!
【讨论】:
# import usefull libraries
import numpy as np
import cv2
# Set global parameters
RED = 0
GREEN = 1
BLUE = 2
# Load the image
img_color = cv2.imread("fruits.jpg", flags=cv2.IMREAD_COLOR)
# Filter the image by desired color
img_color_filtered = np.asarray([y[RED] for x in img_color for y in x]).reshape((img_color.shape[:2]))
【讨论】:
img = Image.open(f"./smoke/first/mistake_cat" + ".png")
data = np.array(img)
red, green, blue, alpha = data.T # Трансформируем матрицу и распаковываем
img_red = Image.fromarray(red)
img_green = Image.fromarray(green)
img_blue = Image.fromarray(blue)
img_alpha = Image.fromarray(alpha)
【讨论】: