一、獲取影象畫素指標
mat.ptr(int i=0) 獲取畫素矩陣的指標,索引i表示第幾行,從0開始計行數。
獲得當前行指標const uchar* current= myimage.ptr(row);
獲取當前畫素點p(row, col)的畫素值 p(row, col) =current[col]
二、畫素範圍處理saturate_cast
saturate_cast(-1),返回 0
saturate_cast(300),返回 255
saturate_cast(100),返回 100
這個函式的功能是確保rgb值得範圍在0~255(uchar)之間
三、讀寫畫素
1.讀乙個gray畫素點的畫素值(cv_8uc1)
scalar intensity = img.at(y, x); 或者 scalar intensity = img.at(point(x, y));
2.讀乙個rgb畫素點的畫素值
vec3f intensity = img.at(y, x);
float blue = intensity.val[0]; /*通道0*/
float green = intensity.val[1]; /*通道1*/
float red = intensity.val[2];/*通道2*/
3.修改灰度影象畫素
img.at(y, x) = 128; /*將點(x,y)的畫素值更改為128*/
4.修改rgb三通道影象畫素
img.at(y,x)[0]=128; // blue
img.at(y,x)[1]=128; // green
img.at(y,x)[2]=128; // red
補充:vec3b對應三通道的順序是blue、green、red的uchar型別資料,而vec3f則是float型別資料。
使用OpenCv操作 分析畫素的基礎核心操作
基礎知識 1 opencv的影象格式 一般的影象檔案格式使用的是 unsigned 8bits cvmat矩陣對應的引數型別就是 cv 8uc1,cv 8uc2,cv 8uc3。最後的1 2 3表示通道數 最常用的是rgb三通道影象,cv 8uc3 而float 是32位的,對應cvmat資料結構引...
OpenCV中幾種常見讀取畫素值方法的讀取速度對比
opencv經常用到讀取影象畫素點的操作,還沒有自己測試過速度,正好有空試一試。應該還有別的讀取方式,以下就只測試了自己用到的7種。有的方法原理是相同。直接上 看結果 include include includeusing namespace cv using namespace std int ...
opencv關於畫素操作的彙總2
任何影象處理演算法,都是從操作每個畫素開始的。即使你不會使用opencv提供的各種影象處理函式,只要你了解影象處理演算法的基本原理,也可以寫出具有相同功能的程式。在opencv中,提供了種訪問每個畫素的方法 使用at方法 使用迭代器 使用指標。這三種方法在訪問速度上略有差異。debug模式下,這種差...