OpenCV 圖像像素操作

加載圖像與讀取基本信息

Mat對(duì)象中除來(lái)存儲(chǔ)圖像的像素?cái)?shù)據(jù)以外,還包括圖像的其他屬性,具體為寬、高、類(lèi)型、通道、大小、深度等,當(dāng)你需要這些信息時(shí),可以通過(guò)相關(guān)API來(lái)獲取這些基本圖像屬性。
public int channels() 返回通道數(shù)
public int cols() 返回矩陣的列數(shù)(寬度)
public int rows() 返回矩陣的行數(shù)(高度)
public int dims() 返回矩陣的維度
public int tyep() 返回矩陣的類(lèi)型

在獲取圖像數(shù)據(jù)的時(shí)候,如果mat 的類(lèi)型與通道數(shù)目重要,根據(jù)mat 的類(lèi)型與通道數(shù)目,開(kāi)辟適當(dāng)大小的內(nèi)存空間,然后通過(guò)get方法就可以實(shí)現(xiàn)對(duì)每個(gè)像素點(diǎn)值的讀取、修改,然后通過(guò)put方法修改與mat對(duì)應(yīng)的數(shù)據(jù)部分

通道表示每個(gè)點(diǎn)能放多少個(gè)數(shù),如RGB彩色圖中的每個(gè)像素點(diǎn)有三個(gè)值,即三通道的;
常見(jiàn)的通道數(shù)據(jù)有
1:灰色單通道
3: RGB
4: RGBA帶alpha

圖像的深度表示每個(gè)值由多少位來(lái)存儲(chǔ),是一個(gè)精度問(wèn)題,一般圖片是8bit位的,則深度8

單通道 雙通道 三通道 四通道
CV_8UC1 CV_8UC2 CV_8UC3 CV_8UC4
CV_8SC1 CV_8SC2 CV_8SC3 CV_8SC4
CV_16UC1 CV_16UC2 CV_16UC3 CV_16UC4
CV_16SC1 CV_16SC2 CV_16SC3 CV_16SC4
CV_32SC1 CV_32SC2 CV_32SC3 CV_32SC4
CV_32FC1 CV_32FC2 CV_32FC3 CV_32FC4
CV_64FC1 CV_64FC2 CV_64FC3 CV_64FC4
圖像深度 Java對(duì)應(yīng)數(shù)據(jù)類(lèi)型
CV_8U 8位byte
CV_8S 8位byte
CV_16U 16位char
CV_16S 16位char
CV_32S 32位int
CV_32F 32位float
CV_64F 64位double

U表示無(wú)符號(hào)整型,S整型,F(xiàn)浮點(diǎn)型
cv::imread 默認(rèn)記載的通道順序是BGR
Utils.bitmapToMat加載的圖像順序是BGRA

讀取像素?cái)?shù)據(jù),修改,寫(xiě)入
方法 支持類(lèi)型
double[] ge(int row, int col) 以下全部
int get(int row ,int col ,double[] data) CV_64FC1
CV_16U 16位char
CV_16S 16位char
CV_32S 32位int
CV_32F 32位float
CV_64F 64位double
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容