相关疑难解决方法(0)

113
推荐指数
5
解决办法
5万
查看次数

Star BV颜色指数与明显的RGB颜色

我正在尝试将明星的BV颜色索引转换为明显的RGB颜色.除了查找表格和颜色渐变之外,似乎没有众所周知的算法可以做到这一点.

什么是BV颜色指数?

这是天文学家为一颗恒星指定其明显颜色的数字.热星(低BV)是蓝色/紫色,冷色星(高BV)是红色的,其间有白色/橙色星.

初始算法

BV到开尔文

在此输入图像描述

var t = 4600 * ((1 / ((0.92 * bv) + 1.7)) +(1 / ((0.92 * bv) + 0.62)) );
Run Code Online (Sandbox Code Playgroud)

开尔文到xyY

如果将星型建模为黑体,则可以使用普朗克轨迹的数值近似来计算xy坐标(CIE色度)

在此输入图像描述

在此输入图像描述

在此输入图像描述

// t to xyY
var x, y = 0;

if (t>=1667 && t<=4000) {
  x = ((-0.2661239 * Math.pow(10,9)) / Math.pow(t,3)) + ((-0.2343580 * Math.pow(10,6)) / Math.pow(t,2)) + ((0.8776956 * Math.pow(10,3)) / t) + 0.179910;
} else if (t > 4000 && t <= 25000) {
  x = ((-3.0258469 …
Run Code Online (Sandbox Code Playgroud)

rgb colors astronomy dart

22
推荐指数
4
解决办法
7186
查看次数

将RGB三元组列表排序为频谱

我有一个RGB三元组列表,我想以这样的方式绘制它们,使它们形成像光谱一样的东西.

我把它们转换成了人们似乎推荐的HSV.

from PIL import Image, ImageDraw
import colorsys

def make_rainbow_rgb(colors, width, height):
    """colors is an array of RGB tuples, with values between 0 and 255"""

    img = Image.new("RGBA", (width, height))
    canvas = ImageDraw.Draw(img)

    def hsl(x):
        to_float = lambda x : x / 255.0
        (r, g, b) = map(to_float, x)
        h, s, l = colorsys.rgb_to_hsv(r,g,b)
        h = h if 0 < h else 1 # 0 -> 1
        return h, s, l

    rainbow = sorted(colors, key=hsl)

    dx = width / …
Run Code Online (Sandbox Code Playgroud)

python hsv spectrum color-space python-imaging-library

16
推荐指数
2
解决办法
6437
查看次数

生成光谱调色板

有没有一种简单的方法来转换Java(RGB,HSV和Lab)中的颜色模型.

假设RGB颜色模型:

  • 如何计算黑体光谱调色板?我想将它用于热图图表.
  • 单波长光谱怎么样?

编辑:我发现ColorSpace类可用于RGB/CIE和许多其他颜色模型之间的转换.

java colors

14
推荐指数
2
解决办法
3万
查看次数

模拟色盲的算法?

在线有许多工具可以拍摄图像并模拟图像对于有色盲的人的样子.但是,我找不到这些算法的任何描述.

是否有用于模拟色盲的标准算法?我知道有很多类型的色盲(有关详细信息,请参阅该主题的维基百科页面),但我主要对模拟重铬酸盐的算法感兴趣.

algorithm colors color-blindness

11
推荐指数
2
解决办法
2702
查看次数

可见光谱与gnuplot

所以我有这种数据

3.500E2 -0.956862
...
10.00E2 -1.95941
Run Code Online (Sandbox Code Playgroud)

在一个文件中.

如果我绘制它看起来像这样:

带线的gnuplot图

现在我希望曲线下方的区域充满可见光谱,如下所示:

填充曲线与可见光谱

我已经找到了这个论坛帖子,它为我绘制了一个很好的可见光谱,但我无法进一步添加自己的曲线,因为这似乎是一个pm3d情节.

我能做什么?

plot gnuplot visible spectrum

8
推荐指数
1
解决办法
1726
查看次数

我如何在Freeglut中画彩虹?

我正试图在openGL中绘制一个彩虹色的情节传奇.这是我到目前为止所得到的:

glBegin(GL_QUADS);
for (int i = 0; i != legendElements; ++i)
{
    GLfloat const cellColorIntensity = (GLfloat) i / (GLfloat) legendElements;
    OpenGL::pSetHSV(cellColorIntensity*360.0f, 1.0f, 1.0f);

    // draw the ith legend element
    GLdouble const xLeft = xBeginRight - legendWidth;
    GLdouble const xRight = xBeginRight;
    GLdouble const yBottom = (GLdouble)i * legendHeight /
    (GLdouble)legendElements + legendHeight;
    GLdouble const yTop = yBottom + legendHeight;

    glVertex2d(xLeft, yTop); // top-left
    glVertex2d(xRight, yTop); // top-right
    glVertex2d(xRight, yBottom); // bottom-right
    glVertex2d(xLeft, yBottom); // bottom-left
}

glEnd();
Run Code Online (Sandbox Code Playgroud)

legendElements是构成"彩虹"的离散方块的数量. …

c++ opengl freeglut

7
推荐指数
1
解决办法
3572
查看次数

颜色渐变算法

给定两个rgb颜色和一个矩形,我能够创建一个基本的线性渐变.这篇博文给出了如何创建它的非常好的解释.但是我想在这个算法中添加一个变量angle.我想创建线性渐变,我可以指定颜色的角度.

例如,我有一个矩形(400x100).从颜色为红色(255,0,0),颜色为绿色(0,255,0),角度为0°,因此我将具有以下颜色渐变.

在此输入图像描述

鉴于我有相同的矩形,从颜色到颜色.但这次我将角度改为45°.所以我应该有以下颜色渐变.

在此输入图像描述

algorithm

5
推荐指数
4
解决办法
7800
查看次数

找不到按照我的目标为 Mandelbrot-set 上色的方法

我已经成功地为 Mandelbrot 集着色,尽管在它变得“模糊”并且图案停止之前我无法放大很远。我通过增加 max_iteration 来解决这个问题,这是有效的,但我在 *1 放大倍率下得到的颜色很少,而且只有在放大时才会出现很多颜色。我理解为什么会发生这种情况,因为在“真正的”Mandelbrot-set 中没有颜色和增加 max_iterations 只会让它更接近那个。但我的问题是,在整个缩放过程​​中,像 youtube 上的缩放如何拥有美丽的色彩,同时仍然能够放大以获得永远的感觉?

我试过在网上到处寻找,但我找不到解决方案,当我查看这些 youtube 缩放的描述时,他们似乎几乎没有提供关于他们如何进行缩放的任何信息。

这里只是绘制 Mandelbrot 集的代码部分。下面的代码是在处理过程中编写的,它是带有添加视觉库的 java。您可以在此处了解有关该计划的更多信息:https : //processing.org/

//m is max_iterations
//mb is the function which calculates how many iterations each point took to escape to infinity. I won't be including the function since I know it works fine and it's quite messy.
//i'm using a HSB/HSV system to draw the mandelbrot

hue=(mb(x, y, m)*360)/m;
sat=255;
if (mb(x, y, m)<m) {
  val=255;
} 
else {
  val=0; …
Run Code Online (Sandbox Code Playgroud)

java math processing fractals mandelbrot

5
推荐指数
1
解决办法
1178
查看次数

渲染曼德尔布罗集的最快算法是什么?

我尝试了许多用于渲染曼德尔布罗特集的算法,包括朴素的逃逸时间算法,以及优化的逃逸时间算法。但是,是否有更快的算法可以像我们在 YouTube 上看到的那样有效地产生真正深度的缩放。另外,我很想了解一些关于如何提高 C/C++ 之外的精度的想法 double

c c++ graphics optimization mandelbrot

4
推荐指数
1
解决办法
6043
查看次数

如何将RGB直方图转换为色谱?

如何转换图像的RGB直方图以创建显示组合颜色以及正确颜色波长范围的直方图?

示例代码:

pkg load image
f=imread('/tmp/marbles.jpg');
f=uint8(f); %need to convert back to uint8 to show picture

%Split into RGB Channels
f_red = f(:,:,1);
f_green = f(:,:,2);
f_blue = f(:,:,3);

%Get histValues for each channel
[y_f_red, x] = imhist(f_red);
[y_f_green, x] = imhist(f_green);
[y_f_blue, x] = imhist(f_blue);
subplot (2,1,1); imshow(f);
subplot (2,1,2); plot(x, y_f_red, 'r', x, y_f_green, 'g', x, y_f_blue, 'b');
Run Code Online (Sandbox Code Playgroud)

示例图像以及代码生成的单独RGB直方图:

当前直方图

我试图让直方图看起来像下面的图像,但颜色从红色变为蓝色:

在此输入图像描述

另一个图片示例:

我想要的直方图

PS:我使用的Octave 4.0与MATLAB非常相似.

matlab image-processing histogram octave matlab-figure

3
推荐指数
1
解决办法
1989
查看次数

Matplotlib-基于光谱颜色的曲线下颜色

我想绘制一个光谱图,其中曲线下方的区域将根据光的相应颜色进行着色。类似于此情节:

在此处输入图片说明

我曾尝试在matplotlib仿效这一点,通过使用imshowspectral色彩表绘制颜色,白色fill_between,掩盖了曲线以上的区域。除以下两点外,我对结果非常满意:

1)我绘制的颜色与可见光谱不太吻合。例如,当红色为红色时,我将700 nm显示为黄色/橙色。我很高兴有点程式化的表现(例如,我认为在第二个答案显示的准确的色彩在这里很无聊),但在一般情况下,我想波长与他们的可见颜色一致。

2)我喜欢上面的光谱如何将可见区域之外的区域着色为alpha <1.0。我不确定如何实现这一目标。

这是我到目前为止的内容:

import numpy as np
import matplotlib.pyplot as plt

fig, axs = plt.subplots(1, 1, figsize=(8,4), tight_layout=True)

wavelengths = np.linspace(200, 1000, 1000)
spectrum = (5 + np.sin(wavelengths*0.1)**2) * np.exp(-0.00002*(wavelengths-600)**2)
plt.plot(wavelengths, spectrum, color='darkred')

y = np.linspace(0, 6, 100)
X,Y = np.meshgrid(wavelengths, y)
X[X<400] = 400
extent=(np.min(wavelengths), np.max(wavelengths), np.min(y), np.max(y))

plt.imshow(X, clim=(350,820),  extent=extent, cmap=plt.get_cmap('spectral'), aspect='auto')
plt.xlabel('Wavelength (nm)')
plt.ylabel('Intensity')

plt.fill_between(wavelengths, spectrum, 8, color='w')
plt.savefig('WavelengthColors.png', dpi=200)

plt.show()
Run Code Online (Sandbox Code Playgroud)

python matplotlib

3
推荐指数
1
解决办法
2815
查看次数

P5.js流体彩虹效果

我刚刚开始使用 P5.js,我想创建下图所示的效果。我不知道如何开始。对于实现此效果的任何帮助,我将不胜感激。

在此输入图像描述

javascript processing graphics canvas p5.js

1
推荐指数
1
解决办法
1195
查看次数