【问题标题】:Grayscale Image Filtration灰度图像过滤
【发布时间】:2020-12-09 11:58:27
【问题描述】:

我需要为灰度图像制作一个滤镜,将 130-135 绘制为蓝色,将 140-145 绘制为灰色的红色。知道怎么做吗?到目前为止,这是我的代码:

import matplotlib.pyplot as plt
from skimage import data
from skimage.color import rgb2gray
import cv2

original=cv2.imread('D:/download.jfif')

gray=cv2.cvtColor(original, cv2.COLOR_BGR2GRAY)


fig, axes= plt.subplots(1,2)
ax=axes.ravel()

ax[0].imshow(original)
ax[0].set_title("Original")
ax[1].imshow(gray, cmap=plt.cm.gray)
ax[1].set_title("Grayscale")

fig.tight_layout()
plt.show()

plt.hist(gray,bins=256)

【问题讨论】:

    标签: python opencv grayscale


    【解决方案1】:
    output = original.copy() # or...
    #output = cv2.cvtColor(gray, cv2.COLOR_GRAY2BGR)
    
    output[(gray >= 130) & (gray <= 135)] = (255, 0, 0) # blue (BGR)
    output[(gray >= 140) & (gray <= 145)] = (0, 0, 255) # red (BGR)
    

    【讨论】:

    • 哦,刚刚注意到一些事情,这段代码过滤了 RGB 中的图像,我需要用灰度过滤它。是否可以对红色和蓝色的图像进行灰度化?
    • 我不明白这个问题。可以举个例子吗
    • 想象一幅全灰的灰度图像,130-135 之间的区域显示为蓝色,140-145 显示为红色。我的意思是输出应该是灰度的。
    • 你的意思是输出应该是灰色的原始输出覆盖选定的颜色?在我的代码中使用注释掉的行。
    • 是的,我已经做到了,非常感谢您的帮助。 :)
    猜你喜欢
    • 2013-04-30
    • 2016-11-02
    • 1970-01-01
    • 1970-01-01
    • 2016-03-18
    • 2015-12-05
    • 1970-01-01
    • 1970-01-01
    • 2014-06-08
    相关资源
    最近更新 更多