【发布时间】:2020-04-29 01:58:08
【问题描述】:
Here is my full code code - 代码摘录在问题的底部。
我对函数 policz 和 koloruj 有疑问。我需要将灰度位图转换为 rgb。
有一个表格显示位图应如何从n(greyscale) 转换为rgb(color)。运行下面的代码 sn-p 显示应该如何转换位图:
<table align="center"><tr><b><th align="center">n</th><th align="center">r<sub>n</sub></th><th align="center">g<sub>n</sub></th><th align="center">b<sub>n</sub></th></b></tr><tr><td align="center">0</td><td align="center">0</td><td align="center">0</td><td align="center">0</td></tr><tr><td align="center">1-85</td><td align="center">r<sub>n-1</sub>+3</td><td align="center">0</td><td align="center">0</td></tr><tr><td align="center">86</td><td align="center">255</td><td align="center">0</td><td align="center">0</td></tr><tr><td align="center">87-170</td><td align="center">255</td><td align="center">g<sub>n-1</sub>+3</td><td align="center">0</td></tr><tr><td align="center">171</td><td align="center">255</td><td align="center">255</td><td align="center">0</td></tr><tr><td align="center">172-255</td><td align="center">255</td><td align="center">255</td><td align="center">b<sub>n-1</sub>+3</td></tr></table>
int policz(int i, char rgb, kolor tab[])
{
int p;
switch (rgb)
{
case 'r':
p = tab[i-1].R+3;
if(p>255)
{
return 255;
}
else return p;
break;
case 'g':
p= tab[i-1].G+3;
if(p>255)
{
return 255;
}
else return p;
break;
case 'b':
p= tab[i-1].B+3;;
if(p>255)
{
return 255;
}
else return p;
break;
}
}
void koloruj(unsigned char tab[], kolor tab_k[], BITMAPINFOHEADER ob)
{
char rgb;
for(int i=0; i<ob.biSizeImage/3; i++)
{
if(tab[i]==0)
{
tab_k[i].R=0;
tab_k[i].G=0;
tab_k[i].B=0;
}
NULL;
if(tab[i]>0 && tab[i]<86)
{
rgb = 'r';
tab_k[i].R=policz(i, rgb,tab_k);
tab_k[i].G=0;
tab_k[i].B=0;
}
NULL;
if(tab[i]==86)
{
tab_k[i].R=255;
tab_k[i].G=0;
tab_k[i].B=0;
}
NULL;
if(tab[i]>86 && tab[i]<171)
{
rgb = 'b';
tab_k[i].R=255;
tab_k[i].G=policz(i, rgb,tab_k);
tab_k[i].B=0;
}
NULL;
if(tab[i]==171)
{
tab_k[i].R=255;
tab_k[i].G=255;
tab_k[i].B=0;
}
NULL;
if(tab[i]>171 && tab[i]<256)
{
rgb = 'b';
tab_k[i].R=255;
tab_k[i].G=255;
tab_k[i].B=policz(i, rgb, tab_k);
}
NULL;
}
}
我猜两者的 1 个功能中的代码都有错误,这让我很紧张
【问题讨论】:
-
所以你有一张只包含灰度信息的图片。您想要添加颜色信息。这些额外信息从何而来?您确定您的目标不是从颜色转换为灰色吗?这是可能的。
-
另外,请在此处提供所有需要的信息,而不是外部链接。
-
请直接在此处提供所有有用的信息,而不是通过链接。直接在此处以文本形式提供文本信息,而不是通过链接到图片。
-
请通过edit提出问题添加信息,而不是将其隐藏在 cmets 中。
-
如果您有代码,请在此处将其显示为minimal reproducible example,并说明缺少什么或行为不端。理想情况下,将所有内容都翻译成英文,这会增加您的机会。