AI-圖像基礎知識-01

    目前人工智能Artificial Intelligence主要分爲兩大分支:

  • 計算機視常見:Computer Vision,簡稱CV

  CV主要是研究如何讓機器看懂世界的一種技術,通過各種光學傳感器來代替人眼對目標對象進行識別,跟蹤和檢測,使機器能夠處理輸入的各種圖像和視頻。

  • 自然語言處理:Natural Language Processing,簡稱NLP

  NLP主要是研究如何機器讀懂世界的一種技術,最終執行如語言翻譯、智能客服等。

    因爲目前所從事的項目都是基於CV的,所以我來總結一下CV的相關知識。從上述簡介可以看CV是要讓機器看懂世界,那麼最直觀的就是傳遞圖像或視頻給機器。那麼我們就需要了解圖像和視頻的基本知識,如下所示:

圖像基礎知識

    說到圖像,最直觀的就是一張靜態圖片。而圖像又可以分爲位圖圖像矢量圖像

位圖圖像

    位圖圖像又稱點陣圖像柵格圖像,是指由很多個點按照指定的顏色和一定的順序組成的矩形網絡。當一張位圖持續放大到一定比例後,便可以很清楚看到每個矩形網格。如下所示:

01位圖示例.png

常見的圖像格式擴展名爲:JPG、BMP、PNG、JPEG等

矢量圖像

    矢量圖也稱爲面向對象的圖像或繪圖圖像,通常由點、直線或多邊形等基於數學對象的幾何圖表示圖像。其最大的特點是放大圖像後不會失真且和分辨率無關。如下所示:

02矢量圖示例.png

常見的矢量圖格式擴展名爲:ai,cdr等。

圖像處理的基本概念

  • 像素:

組成圖像的最基本單元

    像素(pixel,簡寫爲px)這個概念,也可以看成是Picture和Element兩個單詞的頭組成,如下所示:

pix~picture~ + el~element~ = pixel

  • 像素尺寸

位圖圖像長度和高度兩個方向上的像素數目

    我們常說的圖片大小其實就是說這張圖像的長和高兩個方向各有多少個像素點,如圖片大小爲1920*1080,則意味着長度方向上有1920個像素點,高度方向上有1080個像素點,則總的像素點爲:1920*1080=2073600,也就是我們常說的這個圖像是200萬像素級別。

  • 圖像分辨率

圖像分辨率PPI(Pixel Per Inch)指的是每英寸像素數。尺寸相同的情況下,分辨率越高,像素點就越小,圖像越清晰。

    例1*1英寸的圖像,50PPI,則像素總數爲:50*50=2500

  • 文件大小

文件所佔用存儲空間的大小

常見圖像文件格式

  • PSD

PhotoShop特有的圖像文件格式,可記錄圖層、通道、顏色模式,參考線及文件信息屬性,佔用空間較大

  • JPEG

一種有損壓縮文件格式,設置了12個壓縮級別。它是將人眼很難察覺的冗餘圖像和彩色數據去除。因此圖像佔用存儲空間較小且圖像品質受到很少影響。該格式支持RGB、灰度等顏色模式。但不支持Alpha通道和圖層。

  • GIF

一種有損壓縮文件格式,丟失的不是圖像的像素,而是圖像的色彩。常用於保存爲網頁數據傳輸的圖像文件,缺點是不能存儲超過256色的圖像,不支持圖層和Alpha通道

  • PNG

該圖像格式吸取了GIF和JPEG的優點,既有豐富的色彩和較高的壓縮比,又支持透明圖像的製作,可邊下載邊顯示,但不支持動畫。

  • BMP

Windows中的標準圖像格式,支持RGB、索引顏色、灰度和顏色模式,但不支持Alpha通道

色彩屬性

  • 色相(Hue)

指色彩的種類和名稱,如紅、橙、黃.... 取值範圍 0°~360°,每個角度可以代表一種顏色。常以紅色爲0度(360度);黃色爲60度;綠色爲120度;青色爲180度;藍色爲240度;品紅色爲300度。而我們描述某一物體的顏色時,即是以色相進行描述的。

03色相.png

  • 飽各度(Saturation)

常用於表達顏色的強度或純度,即用 0%(純灰色) 至 100%(完全飽和) 的值描述了相同色相下色彩純度的變化。數值越大,顏色中的灰色越少,顏色越鮮豔,呈現一種從灰度到純色的變化。一句話總結就是顏色中的灰色量含量的高低.

04飽和度.png

  • 亮度(Luminance)

常用於表示顏色的相對明暗程度,其作用是控制色彩的明暗變化。同樣使用了 0%(黑色) 至 100%(白色) 的取值範圍。數值越小,色彩越暗,越接近於黑色;數值越大,色彩越亮,越接近於白色。一句話總結就是顏色中混合了多少白色或黑色

05亮度.png

  • 對比度

指不同顏色之間的差異。對比度越大,兩種顏色之間的反差也就越大,反之顏色越相近。如提高一張灰度圖像的對比度,則會使圖像變得黑白鮮明,而降低對比度時,圖像中不同部分的顏色則趨於相同,最終會使整張圖像變爲灰色。

色彩模式

  • RGB色彩模式

    色彩模式是指用數據表示顏色的一種表示方法。在計算機領域內Red、Grenn、Blue稱之爲基色分量

06RGB.png

    通過這三種基色分量依據不同的比例可以調和出不同的顏色。在計算機領域中,RGB的取值爲0~255,共256(2^8^)個值。如下所示在Windows自定義顏色

07自定義顏色.png

通過RGB混合的方式,我們可計算出所表示的總顏色爲256^3^=16777216,這即是大家常見的1600萬色,而每一種可以用8bit來表示,所以表示三種顏色需要佔用3*8=24bit,而這個顏色已經超出人眼能夠識別的範圍,故又稱之爲真彩色。

  • CMYK色彩模式

    CMYK是模擬印刷油墨的基本四色表示,以純青色、洋紅色、黃色、黑色去調配顏色,這種方式是以打印紙上的油墨的光吸收特性爲基礎的印刷模式。因此彩色印刷叫作四色印刷。

C:Cyan 青色
M:Magenta 品紅色
Y:Yellow 黃色
K:blacK 黑色

08CMYK.png

  • 灰度模式

    指用單一色調錶示圖像,一個像素的顏色可以用8bit來表示,因此灰度模式的範圍爲0~255共256個灰度級別,最高爲純黑、最低爲純白,即是黑->灰->白的過渡。

灰度模式是不可逆的,一旦轉換就會丟失顏色信息。
在RGB模式中,三個值相等的時候顯示的就是灰度色彩模式

09灰度模式.png

  • Lab模式

    是光度分量和兩個色度分量組成。

L:代表亮度,範圍0~100%,記錄圖像的細節,但不記錄顏色
A:從綠到紅的光譜變化,範圍在-120~120
B:從藍到黃的光譜變化,範圍-120~120

10LAB模式.png

  • 位圖模式

    彩色圖像去掉彩色信息就變爲灰度模式,那灰度模式去掉灰度信息,就只剩下黑與白,這種情況下,我們稱之爲位圖模式。

11位圖模式.png

  • 索引模式

    根據圖像中的像素來查找顏色,將查找的顏色定義爲一個顏色表,用以存放並索引圖像 中的顏色。索引圖像最多隻可包含256種顏色,因此容易出現失真的情況。

示例代碼

    以上總結了這麼多,下面我們來使用OpenCV動手實踐一下,示例代碼如下所示:

import cv2
import numpy as np

# 原始圖片
imgPath=r"F:\編程資料\編程工程\OpenCV學習筆記\04其他\01測試圖片\TestImage.jpg"
# 保存爲灰度圖片
saveImgAsGrayPath=r"F:\編程資料\編程工程\OpenCV學習筆記\04其他\01測試圖片\SaveAsGrayImg.png"
# 保存爲LAB模式圖片
saveImgAsLabPath=r"F:\編程資料\編程工程\OpenCV學習筆記\04其他\01測試圖片\SaveAsLABImg.png"
# 保存爲位圖圖片
SaveImgAsBitPath=r"F:\編程資料\編程工程\OpenCV學習筆記\04其他\01測試圖片\SaveAsGrayBit.png"
# 以彩色模式讀入
img=cv2.imdecode(np.fromfile(imgPath,dtype=np.uint8),cv2.IMREAD_COLOR)
# 保存灰度圖像
gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
cv2.imencode(".jpg",gray)[1].tofile(saveImgAsGrayPath)
# 保存爲LAB模式
lab=cv2.cvtColor(img,cv2.COLOR_BGR2LAB)
cv2.imencode(".jpg",lab)[1].tofile(saveImgAsLabPath)
# 轉換爲位圖模式
binaryImg=cv2.imdecode(np.fromfile(saveImgAsGrayPath,dtype=np.uint8),cv2.IMREAD_GRAYSCALE)
_,binary=cv2.threshold(binaryImg,100,255,cv2.THRESH_BINARY)
cv2.imencode(".jpg",binary)[1].tofile(SaveImgAsBitPath)

最終生成的結果如下所示:

12示例代碼生成圖.png

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