《opencv計算機視覺攻略》筆記 一

2021-07-26 03:30:54 字數 1467 閱讀 1444

1. mat 定義的是物件的引用

2. namedwindow(char*,mat) 生成的視窗按照名稱標識

3. 需要waitkey(0) 不然無法顯示影象

4. cv::flip(image,result,1);   //正數水平 0垂直翻轉 負數水平和垂直

5. rgb影象是三通道 由3個unsigned char組成

灰度影象是單通道,由1個unsigned char組成

rgb轉灰度:r(0-255),g,b 分別乘以相應權值得到乙個 新值gray(0-255) 即灰度圖單通道值

imread(char*,cv_load_image_grayscale) 按照灰度圖讀取

imread(char*,cv_load_image_color) 按照rgb讀取

6. 滑鼠事件**

//註冊響應滑鼠左鍵

void onmouse(int event,int x,int y,int flags,void *param)

{ cv::mat *im = reinterpret_cast(param);

switch(event)

{case cv_event_lbuttondown:

cout<<"at ("<(im->at(cv::point(x,y))) <(&image));

reinterpret_cast(b)  static_cast  都是型別轉化 區別比較模糊但還是有 前者轉化的兩個物件關係不大  後者轉化的兩個物件稍有關係。。

7. cv::circle(mat,cv::point(x,y),半徑r,顏色0黑255白,厚度);

cv::puttext(mat,文字char*,cv::point(x,y),cv::font_hershey_plain,大小2.0,顏色,厚度);

8. cv::mat a(100,100,cv_8uc3,cv::scalar(0,0,255))

b g r

建立紅色圖

9. cv::mat a = b; cv::mat a(b);      影象指向同一物件

cv::mat a = b.clone();  b.copyto(a);    a為b的副本

淺複製:建立乙個指標a 與b指向同一記憶體塊

深拷貝:建立乙個指標a 為其分配記憶體 並將b所指的記憶體內容拷貝

10. image1.coverto(image2,cv_32f(image2中資料型別),1/255.0(縮放比例),0.0(偏移量))

image1轉換為一定型別的image2

11. cv::mat imageroi(image1,

cv::rect(image1.cols-logo.cols,

image1.rows - logo.rows,

logo.cols,logo.rows));

logo.copyto(imageroi);

logo copy進 imageroi

OpenCV計算機視覺程式設計攻略 全書總結

cv mat imageroi image,cv rect image.cols logo.cols,roi座標 image.rows logo.rows,logo.cols,logo.rows roi大小 logo.copyto imageroi 插入標誌 cv mat imageroi imag...

OpenCV 計算機視覺庫

opencv是乙個由因特爾公司支援的開源機器視覺庫,關於它的介紹,網上隨便一搜就車載斗量。這裡我不談視覺庫的主要內容,而是將這段時間來對它的使用心得作個簡單介紹,以啟發打算用這個庫的朋友的思路,與大家一起來分享。在學校的時候,雖然是影象處理研究方向,但真正具體的應用到影象的很多東西,還是在參加工作以...

計算機視覺 opencv人臉識別

import cv2 步驟1 載入影象 gray cv2.cvtcolor img cv2.color bgr2gray 將影象轉換成灰度模式 opencv載入影象的方式是bgr cv2.imshow test gray cv2.waitkey 0 為什麼不直接在載入影象的時候指定灰度影象?而是要轉...