【问题标题】:Color issue in MATLABMATLAB中的颜色问题
【发布时间】:2011-11-29 17:32:35
【问题描述】:

我正在编写一个用于在图像中画线的函数文件。现在我面临颜色问题。如果我在命令窗口中设置color=[255 255 255]color=[128 128 128],图像中出现的线条都是白色的。

[128 128 128],应该是灰色吧?这与颜色表不对应。我已经测试了一些颜色的值,结论是它取任何大于零的数字作为 255。我该如何解决这个问题?

以下是我的代码。

function [ret]=drawline(p1,p2,color,img);
    xmax=size(img,1);
    ymax=size(img,2);
    if (p1(1)>xmax) || (p2(1)>xmax) || (p1(2)>ymax) || (p2(2)>ymax)
        error('value of point is ouside the image.');
    elseif (p1(1)==xmax) || (p2(1)==xmax) || (p1(2)==ymax) || (p2(2)==ymax)
        error('warning: value of point reach the max.');
    elseif (color(1)>256) ||(color(2)>256)||(color(3)>256)
        error('color value is out of range.');
    else
        m=(p2(2)-p1(2))/(p2(1)-p1(1));
        m=round(m);
        c=p1(2)-m*p1(1);
        for  x=linspace(p1(1),p2(1),1000)
            y=m*x+c;
            if p1(1)==p2(1)
               x=p1(1);
               y=p1(1):p2(2);
            end
            img(round(y),round(x),1)=color(1);
            img(round(y),round(x),2)=color(2);
            img(round(y),round(x),3)=color(3);
        end
    end
    ret=img

【问题讨论】:

  • 请贴出你到目前为止所做的代码。
  • 我已经发布了代码...谢谢!

标签: image matlab colors


【解决方案1】:

您可能正在使用浮点图像,其中颜色范围是 [0, 1] 而不是 [0, 255]。也许系统正在截断超过 1 的所有值,而不是引发错误。不幸的是,我对 matlab 的了解不够,无法更正您的代码。

【讨论】:

  • 你是对的。我只需要校正颜色范围。一旦我在 [0 1] 之间更改三个值,就会出现所需的颜色。谢谢你指路。
【解决方案2】:

我假设您然后执行image(img) 以显示图像。在这种情况下,[255 255 255] 将对应于作为真彩色值的白色,无论颜色映射如何。您需要创建一个单色图像,然后将其视为索引数据并使用颜色图显示。

请参阅image help 的提示部分。

【讨论】:

  • 是的,在那之后我需要'imshow(img)'。现在我离开了颜色问题(如上所述)。但是我被要求进行颜色检查以解决它,我不知道如何开始。老实说,我不知道如何创建单色图像。
  • 单色表示一个数据通道。阅读 MATLAB 帮助。它非常有用。 Mathworks 付出了很多努力。
  • 好的。谢谢。顺便问一下,您对颜色检查有何看法?或者你有什么建议?
  • 您已经拥有if (color(1)>256) ||(color(2)>256)||(color(3)>256),应该是if (color(1)>255) ||(color(2)>255)||(color(3)>255)if any(color > 255),或者可能是if any(color > 255) || any(color < 0)。你还想要什么?
  • 我在苦苦挣扎:为什么我设置 color=[255 255 255],它给了我一条白线,但我设置了 [220 220 220],它仍然给了我一条白线。只要该值大于零,它将作为 255。如何使颜色设置连接到颜色图?所以我可以得到与颜色图相对应的颜色。
猜你喜欢
  • 1970-01-01
  • 2018-01-15
  • 2015-02-11
  • 1970-01-01
  • 2018-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多