我有一個像素數組與我想要轉換爲RGB圖像相關聯的強度(作爲0和1之間的浮點數)。如何在C++中創建僞彩色圖像?
最簡單的方法是將每個值乘以255,並將其賦值給R + G + B以獲得灰度圖像,但我認爲使用整個顏色範圍來顯示更細微的差異會更好。
據我所知,這被稱爲僞/彩色圖像,但我很難找到它的算法。現在,我使用此代碼,但我想知道是否有一個更聰明的/更快的方式做到這一點:
if(intensity <= 0.25) {
p->r = 0;
p->g = 0;
p->b = (intensity) * 4 * 255;
return;
}
if(intensity <= 0.5) {
p->r = 0;
p->g = (intensity - 0.25) * 4 * 255;
p->b = 255;
return;
}
if(intensity <= 0.75) {
p->r = 0;
p->g = 255;
p->b = (0.75 - intensity) * 4 * 255;
return;
}
if(intensity <= 1.0) {
p->r = (intensity - 0.75) * 4 * 255;
p->g = (1.0 - intensity) * 4 * 255;
p->b = 0;
return;
}
此外,是否有任何標準的調色板,我應該爲這個使用?
那麼那些應該可能是別的如果是,一件事...... – FrustratedWithFormsDesigner 2010-10-05 13:23:07
我在ifs中使用return,所以應該使它們變得沒有必要。 – Nils 2010-10-05 13:39:35
噢,沒關係。沒有真正習慣於這種編碼stlye。 – FrustratedWithFormsDesigner 2010-10-05 13:53:10