圖像分辨率、像素總數、文件大小之間的詳細區別

一張3456*2048的圖像指的是其總像素數爲(3456*2048),其中長邊有3456個像素,寬邊有2048個像素。我們所說的手機1500萬像素等概念就是源於這個乘積得出來的數值。
分辨率指的是每英寸中含有的像素點的個數,即像素密度單位爲(dpi:dots per inch,像素點/英寸)或者也有稱之爲點密度(ppi),視網膜屏就是因爲ppi較高才這樣稱之爲的。

那麼圖像的一張3456*2048的圖像指的是其總像素數爲(3456*2048),其中長邊有3456個像素,寬邊有2048個像素。我們所說的手機1500萬像素等概念就是源於這個乘積得出來的數值。
分辨率指的是每英寸中含有的像素點的個數,即像素密度單位爲(dpi:dots per inch,像素點/英寸)或者也有稱之爲點密度(ppi),視網膜屏就是因爲ppi較高才這樣稱之爲的。

問題來了:

那麼圖像的像素數越大,圖像越清晰麼?不是的,圖像的清晰度主要是看分辨率的,也就是單位尺寸中有多少的像素,其實還和你相機的感光器件等等很多因素有關係,不能盲目的信任像素總數。如果你的手機或者相機照出來的圖像的尺寸一定,比如就是3寸的,那麼肯定就是像素總數越大越清晰,因爲分辨率高了。

那麼圖像的像素點越多,圖像的尺寸就會越大麼?一般來說圖像的像素點越多,圖像的尺寸就越大,但也不是完全的,比如一張512*512的圖像,可以保存成一張5寸的照片,也可以保存成一張3寸的照片,這也就是爲什麼你看着圖像越放大越不清晰,越縮小越清晰的原因,在opencv中可以實現該功能: 這幅圖像分辨率200*200dpi,大小450*450像素,那麼就可以得到:
圖像大小 = 圖像大小 / 分辨率 = 450 / 200 = 2.25
所以,這幅圖像的大小爲2.25*2.25英寸
如果要求圖像大小變成1.5*1.5英寸,但像素數仍爲450*450,按照公式:
圖像大小 = 圖像像素數 / 圖像分辨率,就得到了圖像的分辨率應爲:450 / 1.5 = 300dpi
所以,應該使用命令imwrite(f, ‘sf.tif’, ‘compression’, ‘none’, ‘resolution’, [300 300])那麼圖像像素的個數和圖像佔內存大小有什麼關係?更加細節話的爲,jpg格式的圖像像素的個數和圖像佔內存大小有什麼關係?答案:沒有關係,因爲jpg格式的圖像是有損壓縮的,你不知道壓縮的算法具體是什麼樣的,無壓縮的BMP位圖的大小是相同的可以準確計算的。

兩個相同尺寸1920*1200的圖像,在相同色彩度(如24位真彩)情況下,無壓縮的BMP位圖的大小是相同的。
而你看到文件大小的不同,是因爲圖像壓縮算法造成的(無壓縮文件會非常大,一般爲BMP格式),圖像壓縮是個比較大的課題,分爲無損壓縮(PNG等)和有損壓縮(JPG等),具體壓縮算法非常多,各有優劣。
以最常見的JPG爲例,其壓縮算法是有損的,壓縮後的文件大小有幾個重要的決定因素:原圖尺寸、有損程度、圖像中相鄰點色差,圖像中存在色彩數量等等。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章