《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 其他 > 其他 > 機(jī)器視覺基礎(chǔ)——像素操作

機(jī)器視覺基礎(chǔ)——像素操作

2020-08-17
來(lái)源:AI知識(shí)小精靈

一張圖像是由很多個(gè)像素組合而成的,因?yàn)橐粋€(gè)像素特別小,而人眼的分辨率也是有限的,所以我們平時(shí)看不出來(lái),能夠看到的只是一張光滑的圖像。從下圖中我們可以看到,將一張圖像的一部分放大之后,我們會(huì)看到一個(gè)個(gè)小方塊,這些小方塊便是一個(gè)個(gè)像素點(diǎn)了。

qq11.jpg

現(xiàn)在知道了什么是像素點(diǎn)了,那么像素點(diǎn)又是如何組成的呢?其實(shí)在計(jì)算機(jī)中每一種顏色都可以用 R G B 三種顏色分量來(lái)進(jìn)行合成,也就是藍(lán)綠紅。比如黃色,我們就可以用 255 的紅色、255 的綠色以及 0 的藍(lán)色組合而成。

所以對(duì)于每一個(gè)像素點(diǎn)來(lái)說(shuō),計(jì)算機(jī)存儲(chǔ)的實(shí)際上就是 R G B 三種顏色的值。對(duì)于一個(gè) 8 位顏色深度的圖片來(lái)說(shuō),R G B 的每一個(gè)顏色分量的取值范圍在 0 到 255,共 256 個(gè)值,也就是每一個(gè)通道都有 256 種顏色可取,那么對(duì)于 R G B 三通道組合成的像素點(diǎn)來(lái)說(shuō),總共就有 256 的 3 次方種顏色可以取,不同顏色的像素點(diǎn)共同組成了我們看到的形形色色的圖像。

到這里我們就知道了像素點(diǎn)是如何組成的,我們?cè)賮?lái)看看我們平時(shí)所說(shuō)的圖片的寬度和高度是什么吧。對(duì)于下面的圖像,我們可以從屬性里看到,寬度是 500 像素,高度是 833 像素,這里的高度和寬度就是像素點(diǎn)的個(gè)數(shù),也就是說(shuō),這個(gè)圖像在水平方向上有 500 個(gè)像素點(diǎn),在豎直方向上有 833 個(gè)像素的,總共有 500 * 833 個(gè)像素點(diǎn),而每個(gè)像素點(diǎn)都有 R G B 三個(gè)值。

qq22.jpg

上面就是我們需要提前了解的關(guān)于圖像像素的一些基本知識(shí)點(diǎn),了解了這些基本概念,我們就可以愉快地進(jìn)行代碼編寫了,下面我們一起來(lái)看看是如何對(duì)圖像的某個(gè)或者某些像素點(diǎn)進(jìn)行讀取和寫入的操作吧。

我們先來(lái)看看像素的讀取操作,對(duì)于像素的讀取,我們使用的仍然是 Opencv 庫(kù)。在讀取像素之前,我們先要通過(guò) imread 載入一張圖像,然后便可以對(duì)某像素點(diǎn)直接進(jìn)行讀取操作了。比如這里我們要讀出(100,200)位置處的像素點(diǎn)的 R G B 值。同樣,我將使用 Python 與 C# 進(jìn)行對(duì)比展示。先來(lái)看看 Python代碼是如何實(shí)現(xiàn)的吧!

qqq333.jpg

從圖中我們可以看出,(100,200)處的像素點(diǎn)的三通道值分別是 77,52,2。這里就完成了像素的讀取了,是不是很簡(jiǎn)單。下面我們?cè)賮?lái)看看 C# 代碼是如何實(shí)現(xiàn)的吧。

qq444.jpg

可以看出,最終結(jié)果是一樣的,只是在代碼編寫上略有區(qū)別,不過(guò)也是特別簡(jiǎn)單地實(shí)現(xiàn)了。下面我們就來(lái)看看如何對(duì)像素進(jìn)行寫入操作的吧!像素的寫入與讀取是相反的過(guò)程,但是同樣特別簡(jiǎn)單,短短幾行代碼便可實(shí)現(xiàn)。下面我們來(lái)通過(guò)對(duì)像素寫入的方式畫一個(gè)方框吧。

qq555.jpg

同樣最終結(jié)果是一樣的,只是在代碼編寫上略有不同。


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。