首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >黑白加色

黑白加色
EN

Stack Overflow用户
提问于 2021-08-23 12:07:59
回答 1查看 235关注 0票数 1

当红色和绿色混合时,我会像预期的那样变黄。

代码语言:javascript
复制
RGB for Red:   [255, 0, 0] 
RGB for Green: [0, 255, 0]
Result:        [255, 255, 0]

但是当白色和黑色混在一起时,我应该变成通常的灰色,但我会变白。我不应该变灰吗?

代码语言:javascript
复制
RGB for Black: [0, 0, 0] 
RGB for White: [255, 255, 255]
Result:        [255, 255, 255] 

以下是代码:

代码语言:javascript
复制
from PIL import Image, ImageChops
import math
import matplotlib.pylab as plt

im1= Image.open(r'.\red.jpg')
im2= Image.open(r'.\green.jpg')

result = ImageChops.add(im1, im2)

plt.imshow(result)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-23 14:20:45

我认为@Cris所说的(“如果你想得到灰色,将白色像素和黑色像素平均在一起”)是有效的;我还认为一个额外的东西可以是一个MixFactor。

为此您可以使用OpenCV。

进口:

代码语言:javascript
复制
import sys
import cv2
import numpy as np

负载图像:

代码语言:javascript
复制
im = cv2.imread(sys.path[0]+'/im.png')

主要代码:

代码语言:javascript
复制
color=[0,0,0]
mixFactor=.5
im = (1-mixFactor)*im+[(mixFactor)*x for x in color]

我的颜色输入值:

代码语言:javascript
复制
[0, 0, 0] black
[255, 255, 255] white
[255, 0, 0] blue (BGR)
[0, 255, 0] green   
[0, 0, 255] red       

我使用图形软件绘制了第一个彩色图像;用这个Python代码创建的其他8个图像。

Credit:图像上的文本是使用OpenCV中包含的默认好时字体编写的。你可以读到更多的这里这里

更新:

如果要对此混合方法的输出使用imshow,请按如下方式使用:

代码语言:javascript
复制
cv2.imshow("preview", im/255)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68892412

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档