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 為什麼不直接在載入影象的時候指定灰度影象?而是要轉...