本篇隸屬于文集:《零基礎(chǔ)入門音視頻開發(fā)》,查看文集全部文章,請點(diǎn)擊文字鏈接。
想看最新文章,可以直接關(guān)注微信公眾號:金架構(gòu)
這篇文章會按照下面這個(gè)路線圖進(jìn)行介紹恤溶,閱讀本文需要三分鐘,詳細(xì)閱讀本文需要半小時(shí)嫌蚤。
流程圖最后一項(xiàng)摊灭,伽馬矯正、JPEG壓縮編碼和文件格式偷崩,只做粗略的理論介紹辟拷。因?yàn)橘ゑR矯正和壓縮編碼,需要在實(shí)際應(yīng)用阐斜,并且結(jié)合其他知識來理解衫冻,所以在后面會單開幾篇。
1谒出、顏色是啥和我們?yōu)槭裁茨芸吹剿?/h5>
顏色是啥隅俘,它其實(shí)是我們的視覺系統(tǒng)邻奠,對可見光的一種感知。如果我們是瞎子为居,那人類肯定不會發(fā)現(xiàn)還有顏色這種神奇的東西碌宴。光透過我們的眼睛,傳入我們的大腦蒙畴,就像照相機(jī)咔嚓一聲贰镣,將一幅圖片記錄到內(nèi)存卡。
早在之前膳凝,人類就發(fā)現(xiàn)光是一種電磁波碑隆,而人類并不能看見所有的電磁波,因此把能看見的電磁波蹬音,定為可見光上煤。它的波長在380和780nm之間,
我們在自然界看到的大多數(shù)光著淆,都不是一種波長的光楼入,它是由許許多多,不同波長的光組合而成牧抽,因此我們才能看到這么多顏色嘉熊。
就像我們看到的太陽光,它也是由多種不同顏色的光組合而成扬舒。我們小時(shí)候都玩過鏡子阐肤,用一面鏡子,來折射太陽光線到水里讲坎,光線再通過水折射到墻上孕惜,就出現(xiàn)了彩虹。而牛頓晨炕,很早的時(shí)候就用棱鏡演示了這個(gè)事實(shí):白光包含所有可見光譜的波長衫画。
在人的視網(wǎng)膜中,有三種對紅綠藍(lán)敏感程度不同的椎體細(xì)胞瓮栗,視網(wǎng)膜通過神經(jīng)元感知外部世界的顏色削罩,而每個(gè)神經(jīng)元,是一個(gè)對顏色敏感的椎體费奸。紅綠藍(lán)三種椎體細(xì)胞弥激,對不同頻率的光的感知不同,對不同亮度的感知程度也不同愿阐。所以后來人們在數(shù)字化圖像的時(shí)候微服,面對巨大的數(shù)據(jù)量,就可以使用壓縮編碼技術(shù)缨历,來降低圖像的數(shù)據(jù)量以蕴,而使人眼感覺不到圖像質(zhì)量的下降糙麦。
2、圖像的顏色模型
2.1 RGB相加混色模型
一個(gè)能發(fā)出光波的物體稱為有源物體丛肮,它的顏色喳资,由該物體發(fā)出的光波決定。就像彩色CRT一樣腾供,三個(gè)電子槍分別產(chǎn)生R仆邓、G、B三種波長的光伴鳖,并以各種不同的相對強(qiáng)度組合產(chǎn)生不同的顏色节值。
因?yàn)镽、G榜聂、B顏色模型是用三種光疊加搞疗,來產(chǎn)生特定的顏色,所以這種方法又稱為RGB相加混色模型须肆。
在自然界中匿乃,任何一種顏色,都可以用R豌汇、G幢炸、B這三種顏色值之和來確定,在數(shù)學(xué)書拒贱,它們構(gòu)成一個(gè)三維的RGB矢量空間宛徊。所以只要R、G逻澳、B的數(shù)值不同闸天,混合得到的顏色就不同,也就是光波的波長不同斜做。
顏色 = R(紅的百分比)+ G(綠的百分比)+ B(藍(lán)的百分比)
2.2 彩色圖像
在柵格圖像下苞氮,一幅彩色圖像,可以看成由許多點(diǎn)組成瓤逼。每個(gè)點(diǎn)稱為一個(gè)像素笼吟,每個(gè)像素都有一個(gè)值,它表示特定顏色的強(qiáng)度抛姑。一個(gè)像素值通常由R赞厕、G、B三個(gè)分量表示定硝。如果每個(gè)像素的每個(gè)顏色分量用“1”和“0”表示,即每種顏色的強(qiáng)度是100%或0%毫目,那么每個(gè)像素所呈現(xiàn)的顏色蔬啡,就會是8種(2的三次方)顏色之一诲侮。
2.3 CMY相減混色模型
一個(gè)不發(fā)光波的物體,稱為無源物體箱蟆,它的顏色沟绪,由物體吸收或者反射那些光波決定。就像我們看見樹葉是綠色的空猜,是因?yàn)殛柟庹赵跇淙~上绽慈,其他的可見光被吸收,綠光被反射辈毯,所以我們才看得見坝疼。如果半夜去,能看見我服你谆沃!
當(dāng)我們畫水彩的時(shí)候钝凶,我們將顏料進(jìn)行混合,繪制的圖畫唁影,也是一種無源物體耕陷。
使用C(青色cyan)、M(品紅magenta)据沈、Y(黃色yellow)按一定比例混合得到顏色的方法哟沫,稱為CMY模型,也稱CMY相減混色模型(為什么下面講)锌介。
同樣南用,任何一種顏色使用C、M掏湾、Y也可以混合得到裹虫。
2.3.1 為什么叫做CMY相減混色模型
CMY相減混色模型這樣命名的原因,是因?yàn)檫@種混色模型融击,使用從白光中筑公,減去對應(yīng)數(shù)值的C(青色cyan)、M(品紅magenta)尊浪、Y(黃色yellow)三種顏色而產(chǎn)生顏色匣屡。
如果這句話不能使你充分理解,那么可以結(jié)合RGB相加混色模型一起理解拇涤。如下圖:
如圖所示捣作,R(紅)、G(綠)鹅士、B(藍(lán))的兩兩交集產(chǎn)生C(青)券躁、M(品紅)、Y(黃),而RGB三者的交集產(chǎn)生白色也拜。
列成等式就是這樣:
(1)白 = 紅 + 藍(lán) + 綠以舒;
(2)黃 = 紅 + 綠;
(3)青 = 藍(lán) + 綠慢哈;
(4)品紅 = 紅 + 藍(lán)蔓钟;
如果我們現(xiàn)在使用CMY相減混色模型來產(chǎn)生顏色,那么它產(chǎn)生顏色的過程如下:
假如“黃”的數(shù)值已知卵贱,那么可以用白色(基準(zhǔn)值)減去黃色得到藍(lán)色滥沫,同理可得紅色和綠色的值。而我們都知道键俱,RGB可以組成幾乎所有的顏色兰绣,因此顏色產(chǎn)生。
如果說到這還想不明白方妖,請用(1)式分別減(2)狭魂、(3)、(4)式党觅。
所以總結(jié)起來雌澄,相減混色和相加混色其實(shí)互為互補(bǔ)色,RGB中顏色值為1的地方杯瞻,在CMY對應(yīng)的位置上镐牺,其顏色值為0。它們的關(guān)系如下所示:
利用這種關(guān)系魁莉,RGB可以轉(zhuǎn)化成CMY睬涧,因?yàn)镽GB常用在顯示器、計(jì)算機(jī)圖像等顯示設(shè)備上旗唁,而CMY常用在打印機(jī)畦浓、印刷上,所以可以把顯示的顏色检疫,轉(zhuǎn)換成打印的顏色讶请。
3 圖像的三個(gè)基本屬性
3.1 圖像分辨率
前面我們介紹過顯示器分辨率,它表示顯示器能夠顯示畫面的細(xì)膩度屎媳。而圖像分辨率夺溢,是圖像精細(xì)程度的度量方法。對同樣尺寸的一幅圖像烛谊,如果像素?cái)?shù)目越多风响,則說明圖像的分辨率越高,看上去越逼真丹禀。相反状勤,圖像看起來越粗糙鞋怀。
圖像分辨率也稱空間分辨率,或者像素分辨率荧降。
在實(shí)際應(yīng)用中接箫,我們通常這樣表示圖像分辨率:
1攒读、物理尺寸:通過每毫米的線數(shù)或行數(shù)來標(biāo)識朵诫,比如一幅640x480的圖像,物理尺寸為10mm x 10mm薄扁,那么它每毫米有48行
2剪返、行列像素:像素/行 x 行/幅,如640像素/行 x 480行/幅
3邓梅、像素總數(shù):如手機(jī)或者數(shù)碼相機(jī)上標(biāo)的脱盲,1200萬像素
4、單位長度上的像素:如像素每英寸(pixels per inch, PPI)
5日缨、線對數(shù):以黑白相鄰的兩條線為一對
在這五種表示法中钱反,如果是顯示在手機(jī)或者計(jì)算機(jī)顯示器上,第五種和第一種很少用到匣距。比如線對數(shù)面哥,在顯示器中,圖像被單行掃描毅待,所以線對數(shù)用到較少尚卫,有興趣的可以自行百度。
3.1.1 圖像分辨率和屏幕分辨率
有的人可能咋然看到這兩個(gè)詞尸红,有點(diǎn)分不清吱涉。其實(shí)道理很簡單,屏幕相當(dāng)于畫布外里,圖像如果大于畫布怎爵,就畫不下,只能畫出整幅圖像的一部分盅蝗。比如鳖链,如果屏幕分辨率為640x480,那么一副320x240的圖像风科,就只占顯示屏的1/4撒轮。相反,2400x3000像素的圖像就不能顯示完整畫面贼穆。
有的人可能又會說题山,不對呀,我在電腦上或手機(jī)上打開任何一幅圖故痊,都能看到完整的畫面呀顶瞳。是這樣,我們在電腦上打開或者手機(jī)上打開圖片的時(shí)候,都會默認(rèn)使用看圖軟件打開慨菱,在打開的時(shí)候焰络,看圖軟件已經(jīng)對原圖做了處理。
比如一幅分辨率大于屏幕分辨率的圖像符喝,軟件會刪除圖像的一些像素闪彼,來顯示完整。如果你對圖片進(jìn)行放大协饲,那么程序會根據(jù)算法畏腕,再添加一些像素進(jìn)去。這樣一來茉稠,一幅高分辨率的圖像描馅,被放大之后,被程序加入的像素就比低分辨率的要少而线,所以它依然很清晰铭污,而低分辨率的此時(shí)可能已經(jīng)看不清了。
有人可能還會說膀篮,不對呀嘹狞,我在電腦上放大一幅圖片的時(shí)候,放大到最后各拷,圖像的每個(gè)像素我都能看得見刁绒,程序加的像素在哪兒呢?在這里我也放大一幅圖片放在這烤黍,請看下圖:
問這個(gè)問題的知市,首先是沒搞清楚圖像分辨率和屏幕分辨率是怎么一回事。我現(xiàn)在使用的屏幕分辨率是1280x800速蕊,圖像被放大到每個(gè)像素都能看見嫂丙,然而,像素點(diǎn)有這么大嘛规哲?顯示器上每行有1280個(gè)像素點(diǎn)跟啤,圖像被放大后,顯示器上依然有1280個(gè)點(diǎn)唉锌,而圖像的總像素也沒有變隅肥,那程序加的像素在哪兒呢?
就在放大后的每個(gè)像素格子上袄简!可以這樣理解腥放,放大前圖像的一個(gè)像素用顯示器的一個(gè)像素顯示,放大之后绿语,圖像的一個(gè)像素格子用顯示器的20個(gè)像素顯示秃症。那每個(gè)格子多余的19個(gè)像素從哪兒來候址?