OpenCV1 基本操作and掩膜例子

2021-10-09 05:52:38 字數 2416 閱讀 6106

mat input =

imread

("路徑");

mat input =

imread

("路徑"

, imread_unchanged)

(<

0)載入原圖

mat input =

imread

("路徑"

, imread_grayscale)(0

)把原圖作為灰度影象載入

mat input =

imread

("路徑"

, imread_color)

(>

0)把原圖作為rgb影象載入

namedwindow

("視窗名"

, window_autosize)

;//建立乙個視窗,自動建立與釋放

window_aotusize //自動根據影象大小顯示視窗大小,不能人為改變

window_normal //允許修改視窗大小

imshow

("視窗名"

, mat物件)

cvtcolor把影象從色彩空間轉換的另乙個色彩空間。

cvtcolor

(input_image, output_image, color_bgr2gray)

;// 輸入影象 輸出影象 源和目標色彩空間

imwrite(「指定目錄路徑」, 需輸出的影象);

只有8位、16位的png、jpg、tiff檔案而且是單通道或者是三通道的bgr影象才可以通過這種方式儲存。

mat.ptr

(int i =0)

;//獲取畫素矩陣的指標,索引i表示第幾行,從0開始計數。

const uchar* current = myimage.ptr

(row)

;//獲取當前行指標

p(row, col)

= current[col]

;//獲取當前畫素點

畫素範圍處理saturate_cast,確保rgb值得範圍在0~255之間。

saturate_cast(-100), 返回0。

saturate_cast(288), 返回255。

saturate_cast(100), 返回100。

掩膜操作公式如圖:

; // 將myimage複製給outimage

//outimage = mat::zeros(myimage.size(), myimage.type()); //置為0,全黑影象

//for (int row = 1; row < height - 1; row++)

// //掩膜操作,重新計算當前畫素點的值

//}//函式呼叫filter2d功能實現

mat kernel =

(mat_<

char

>(3

,3)<<0,

-1,0

,0,5

,0,0

,-1,

0);//定義掩膜

filter2d

(myimage, outimage, myimage.

depth()

, kernel)

;表示位圖深度

namedwindow

("outimage"

, window_autosize)

;imshow

("outimage"

, outimage)

;waitkey(0

);return0;

}

OPENCV 1 學習筆記

灰度圖 2維矩陣 彩色圖 3維矩陣 ps 目前大部分裝置都是用無符號 8 位整數 型別為 cv 8u 表示畫素亮度 mat類定義 class cv exports mat 單通道影象 元素型別一般為 8u 即 8 位無符號整數 也可以是 16s 32f 等 這些型別可以直接用 uchar short...

opencv 掩膜操作

saturate cast函式保證運算後全部歸一化在0 255之間,注意上面row,col的移動範圍是很有講究的,的四個邊緣行因為沒有完整的上下左右所以省略,然而在實際應用掩膜操作時候並不用到自己這麼複雜的寫 opencv中提供了乙個filter2d函式。mat kernel mat 3,3 0,1...

opencv矩陣掩膜操作

include include using namespace std using namespace cv intmain imshow 操作前 src double t gettickcount 定義掩膜矩陣 卷積核 掩膜可以自己定義,不同矩陣效果不同 0 1 0 1 5 1 掩膜可以自己定義,...