灰度使用黑色調(diào)表示物體。 每個灰度對象都具有從 0%(白色)到 100%(黑色)的亮度值。 使用黑白或灰度掃描儀生成的圖像通常以灰度顯示。
使用灰度還可將彩色圖稿轉(zhuǎn)換為高質(zhì)量黑白圖稿。 在這種情況下,Adobe Illustrator 放棄原始圖稿中的所有顏色信息;轉(zhuǎn)換對象的灰色級別(陰影)表示原始對象的亮度。
將灰度對象轉(zhuǎn)換為 RGB 時,每個對象的顏色值代表對象之前的灰度值。 也可以將灰度對象轉(zhuǎn)換為 CMYK 對象。
自然界中的大部分物體平均灰度為18%。
在物體的邊緣呈現(xiàn)灰度的不連續(xù)性,圖像分割就是基于這個原理。
所謂灰度色,就是指純白、純黑以及兩者中的一系列從黑到白的過渡色。我們平常說所的黑白照片、黑白電視,實際上都應該稱為灰度照片、灰度電視才確切。灰度色中不包含任何色相,即不存在紅色、黃色這樣的顏色。
灰度的通常表示方法是百分比,范圍從0%到100%。Photoshop中只能輸入整數(shù),在Illustrator和GoLive允許輸入小數(shù)百分比。
注意這個百分比是以純黑為基準的百分比。與RGB正好相反,百分比越高顏色越偏黑,百分比越低顏色越偏白。
灰度最高相當于最高的黑,就是純黑。灰度最低相當于最低的黑,也就是“沒有黑”,那就是純白。
雖然灰度共有256級,但是由于Photoshop的灰度滑塊只能輸入整數(shù)百分比,因此實際上從灰度滑塊中只能選擇出101種(0%也算一種)灰度。大 家可以在灰度滑塊中輸入遞增的數(shù)值然后切換到RGB滑塊察看,可以看到:0%的灰度RGB數(shù)值是255,255,255;1%灰度的RGB數(shù)值是 253,253,253;2%灰度RGB值為250,250,250。也就是說,252,252,252這樣的灰度是無法用Photoshop的灰度滑塊 選中的。相比之下Illustrator的灰度允許輸入兩位小數(shù),使得選色的精確性大大提高了 。
灰度圖像gray level image
在計算機領域中,灰度數(shù) 字圖像是每個像素只有一個采樣顏色的圖像。這類圖像通常顯示為從最暗黑色到最亮的白色的灰度,盡管理論上這個采樣可以任何顏色的不同深淺,甚至可以是不同 亮度上的不同顏色。灰度圖像與黑白圖像不同,在計算機圖像領域中黑白圖像只有黑色與白色兩種顏色;灰度圖像在黑色與白色之間還有許多級的顏色深度。但是, 在數(shù)字圖像領域之外,“黑白圖像”也表示“灰度圖像”,例如灰度的照片通常叫做“黑白照片”。在一些關于數(shù)字圖像的文章中單色圖像等同于灰度圖像,在另外一些文章中又等同于黑白圖像。
灰度圖像經(jīng)常是在單個電磁波頻譜如可見光內(nèi)測量每個像素的亮度得到的。
用 于顯示的灰度圖像通常用每個采樣像素 8 位的非線性尺度來保存,這樣可以有 256 級灰度。這種精度剛剛能夠避免可見的條帶失真,并且非常易于編程。在醫(yī)學圖像與遙感圖像這些技術應用中經(jīng)常采用更多的級數(shù)以充分利用每個采樣 10 或 12 位的傳感器精度,并且避免計算時的近似誤差。在這樣的應用領域每個采樣 16 位即 65536 級得到流行。
二值圖像
二 值圖像是一種簡單的圖像格式,它只有兩個灰度級,即"0"表示黑色的像素點,"255"表示白色的像素點。二值圖像處理在圖像處理領域占據(jù)很重要的位置, 在具體的圖像處理應用系統(tǒng)中,往往需要對于獲得的二值圖像再進一步進行處理,以有利于后期的識別工作。二值圖像處理運算是從數(shù)學形態(tài)學下的集合論方法發(fā)展 起來的,盡管它的基本運算很簡單,但是卻可以產(chǎn)生復雜的效果。常用的二值圖像處理操作有許多方法,如腐蝕、膨脹、細化、開運算和閉運算等等。
ubject: 為顯示256級灰度圖,需把16bpp的framebuffer改為24位,請高手指點一二
Author: freeubuntu Posted: 2007-09-24 10:54 Length: 1,718 byte(s)
[Original] [Print] [Top]
大家知道,16位的制式為r 5 g 6 b 5,最多能顯示2的5次方(即32級灰度),現(xiàn)在16位,640*480的,framebuffer已經(jīng)可以在我自己的TFT屏上正常運行,但是為了達到256級灰度必須改為24位的framebuffer,
arm是s3c2440,TFT屏是LG.PHILIPS LCD ,為了運行24位的framebuffer,我做了如下修改
1。我把16位驅(qū)動中的16位相關都改為24位的了,例如:
if ( var->bits_per_pixel == 24 ) {//change add
var->red.offset = 16; var->red.length = 8;
var->green.offset = 8; var->green.length = 8;
var->blue.offset = 0; var->blue.length = 8;
var->transp.offset = var->transp.length = 0;
}else if ( var->bits_per_pixel == 16 ) {
var->red.offset = 11; var->red.length = 5;
var->green.offset = 5; var->green.length = 6;
var->blue.offset = 0; var->blue.length = 5;
var->transp.offset = var->transp.length = 0;
}
2。因為16位的framebuffer可以運行,我沒有修改5個控制寄存器,我修改了地址寄存器2,3,如下
/* 16bpp 24bpp*/
new_regs.lcdsaddr2 = LCDADDR_BASEL(
((unsigned long)VideoPhysicalTemp + (var->xres * 3 * (var->yres/*-1*/)))
>> 1);//change 2 to 3
new_regs.lcdsaddr3 = LCDADDR_OFFSET(0) | (LCDADDR_PAGE(var->xres*3/2) /*>> 1*/);
編譯后運行,在屏幕上出現(xiàn)了(橫4豎4)共16個小圖象,都是24位的(用示波器檢測過了),
這是怎么回事呢?是寄存器沒有設置正確,還是在修改驅(qū)動時出現(xiàn)了問題呢?
本人新手,請大家指教,謝謝!!
[Original] [Print] [Top]
Subject: Re: 為顯示256級灰度圖,需把16bpp的framebuffer改為24位,請高手指點一二
Author: gg940231 Posted: 2007-09-24 10:59 Length: 62 byte(s)
[Original] [Print] [Top]
好像只有 4級 ,16級灰度 吧,,,還沒有聽說過 256級灰度呢。。。
----
<< 發(fā)展才是硬道理 >> QQ:77291408 gg940231@163.com
[Original] [Print] [Top]
Subject: Re: 為顯示256級灰度圖,需把16bpp的framebuffer改為24位,請高手指點一二
Author: freeubuntu Posted: 2007-09-24 11:05 Length: 192 byte(s)
[Original] [Print] [Top]
這里再做一些補充,和許多TFT屏一樣我的TFT屏上只有18根數(shù)據(jù)線(R6 G6 B6),framebuffer作成24位的(R8G8B8),TFT上顯示6位的數(shù)據(jù)(R6G6B6),這樣就能顯示64級灰度了,我的目標就是顯示64級灰度。謝謝大家!
[Original] [Print] [Top]
Subject: Re: 為顯示256級灰度圖,需把16bpp的framebuffer改為24位,請高手指點一二
Author: freeubuntu Posted: 2007-09-24 11:11 Length: 92 byte(s)
[Original] [Print] [Top]
24位的圖象約有16M色的圖象(即2的24次方),當RGB的值相等時顯示為灰度,即2的8次方(256級灰度)
[Original] [Print] [Top]
Subject: Re: 為顯示256級灰度圖,需把16bpp的framebuffer改為24位,請高手指點一二
Author: gg940231 Posted: 2007-09-24 11:22 Length: 89 byte(s)
[Original] [Print] [Top]
那你就直接用 16位TFT 的就可以了啊,在 gui 里去增加個函數(shù), 轉(zhuǎn)換 16位真彩色 到 你的 灰度。
----
<< 發(fā)展才是硬道理 >> QQ:77291408 gg940231@163.com
[Original] [Print] [Top]
Subject: Re: 為顯示256級灰度圖,需把16bpp的framebuffer改為24位,請高手指點一二
Author: freeubuntu Posted: 2007-09-24 11:33 Length: 99 byte(s)
[Original] [Print] [Top]
這也行?怎么搞?
還有那個寫GUI的會砍死我的,他本來任務就重,我還想搞完驅(qū)動去幫他一把呢!!
----
qq:554726623
email:freeubuntu@hotmail.com
[Original] [Print] [Top]
Subject: Re: 為顯示256級灰度圖,需把16bpp的framebuffer改為24位,請高手指點一二
Author: gg940231 Posted: 2007-09-24 11:41 Length: 99 byte(s)
[Original] [Print] [Top]
不知道你用什么 GUI ,我的是 microwindows ,通常底層就是些,打點,劃線的函數(shù),看看吧,不復雜的。。。
----
<< 發(fā)展才是硬道理 >> QQ:77291408 gg940231@163.com
[Original] [Print] [Top]
Subject: Re: 為顯示256級灰度圖,需把16bpp的framebuffer改為24位,請高手指點一二
Author: rocky1972 Posted: 2007-09-24 11:48 Length: 614 byte(s)
[Original] [Print] [Top]
**************************************************************************************
2。因為16位的framebuffer可以運行,我沒有修改5個控制寄存器,我修改了地址寄存器2,3,如下
/* 16bpp 24bpp*/
new_regs.lcdsaddr2 = LCDADDR_BASEL(
((unsigned long)VideoPhysicalTemp + (var->xres * 3 * (var->yres/*-1*/)))
>> 1);//change 2 to 3
***************************************************************************************
16bpp換成24bpp當然還要修改LCD CON1的BPPMODE=TFT24BPP了,查看datasheet LCDCON1 寄存器一下。
[Original] [Print] [Top]
Subject: Re: 為顯示256級灰度圖,需把16bpp的framebuffer改為24位,請高手指點一二
Author: rockos Posted: 2007-09-24 12:47 Length: 210 byte(s)
[Original] [Print] [Top]
暈~~~
2.6.20內(nèi)核中包含的s3c24xx framebuffer驅(qū)動可以直接支持24位色, copy到你的版本就可以了.
這個版本的fb把lcdcon的功能基本上都實現(xiàn)了, 1, 2, 4, 8, 12, 16, 24位色模式都支持了.
----
不喜歡GPL, BSD的免費許可不錯.
[Original] [Print] [Top]
Subject: Re: 為顯示256級灰度圖,需把16bpp的framebuffer改為24位,請高手指點一二
Author: freeubuntu Posted: 2007-09-24 14:39 Length: 222 byte(s)
[Original] [Print] [Top]
對不起,這個我忘說了,控制寄存器1我改了的,如下:
.reg = {
/*111111000 這里把寄存器改為13*/
.lcdcon1 = (1<<8)|(1<<7)|(3<<5)|(13<<1),
----
qq:554726623
email:freeubuntu@hotmail.com
[Original] [Print] [Top]
Subject: Re: 為顯示256級灰度圖,需把16bpp的framebuffer改為24位,請高手指點一二
Author: freeubuntu Posted: 2007-09-24 15:11 Length: 118 byte(s)
[Original] [Print] [Top]
有這等好事!原來我用的是2.6.12的內(nèi)核,我馬上下一個2.6.20的內(nèi)核看一下,
要知后事如何,且聽下回分解。
----
qq:554726623
email:freeubuntu@hotmail.com
[Original] [Print] [Top]
Subject: Re: 為顯示256級灰度圖,需把16bpp的framebuffer改為24位,請高手指點一二
Author: freeubuntu Posted: 2007-09-24 15:58 Length: 65 byte(s)
[Original] [Print] [Top]
2.6.20中的framebuffer我看了一下,不行啊,要改很多地方吧
----
qq:554726623
email:freeubuntu@hotmail.com
[Original] [Print] [Top]
Subject: Re: 為顯示256級灰度圖,需把16bpp的framebuffer改為24位,請高手指點一二
Author: freeubuntu Posted: 2007-09-24 18:42 Length: 1,647 byte(s)
[Original] [Print] [Top]
我已經(jīng)仔細看過了2.6.20.6內(nèi)核中的s3c2410fb.c,我發(fā)現(xiàn)這個也是16位的。如下:
if (fbi->mach_info->type == S3C2410_LCDCON1_TFT)
switch (var->bits_per_pixel) {
case 1:
fbi->regs.lcdcon1 |= S3C2410_LCDCON1_TFT1BPP;
break;
case 2:
fbi->regs.lcdcon1 |= S3C2410_LCDCON1_TFT2BPP;
break;
case 4:
fbi->regs.lcdcon1 |= S3C2410_LCDCON1_TFT4BPP;
break;
case 8:
fbi->regs.lcdcon1 |= S3C2410_LCDCON1_TFT8BPP;
break;
case 16:
fbi->regs.lcdcon1 |= S3C2410_LCDCON1_TFT16BPP;
break;
default:
/* invalid pixel depth */
dev_err(fbi->dev, "invalid bpp %d ", var->bits_per_pixel);
}
else
switch (var->bits_per_pixel) {
case 1:
fbi->regs.lcdcon1 |= S3C2410_LCDCON1_STN1BPP;
break;
case 2:
fbi->regs.lcdcon1 |= S3C2410_LCDCON1_STN2GREY;
break;
case 4:
fbi->regs.lcdcon1 |= S3C2410_LCDCON1_STN4GREY;
break;
case 8:
fbi->regs.lcdcon1 |= S3C2410_LCDCON1_STN8BPP;
break;
case 12:
fbi->regs.lcdcon1 |= S3C2410_LCDCON1_STN12BPP;
break;
default:
/* invalid pixel depth */
dev_err(fbi->dev, "invalid bpp %d ", var->bits_per_pixel);
}
----
qq:554726623
email:freeubuntu@hotmail.com
[Original] [Print] [Top]
Subject: Re: 為顯示256級灰度圖,需把16bpp的framebuffer改為24位,請高手指點一二
Author: freeubuntu Posted: 2007-09-27 15:44 Length: 91 byte(s)
[Original] [Print] [Top]
現(xiàn)在已經(jīng)確定是寄存器設置的問題了,在bootloader中對logo 進行同樣的寄存器設置也出現(xiàn)了16幅圖象