OpenCV學習記錄22

2021-09-26 23:51:21 字數 1863 閱讀 1957

一 學習內容

1 影象對映

1.1 影象對映---對映到不同的座標位置(例如:影象上下對稱、左右對稱、對角線對稱、縮小等)

1.2 關於對映表的設定:值為對映後的座標位置

二 **除錯

#include #include #include using namespace cv;

using namespace std;

mat src,map_x, map_y,dst_remap;

char figure1 = "figure1";

char figure2_remap = "figure2_remap";

char figure3_remap = "figure3_remap";

char figure4_remap = "figure4_remap";

char figure5_remap = "figure5_remap";

char figure6_remap = "figure6_remap";

void zl_remap(void);

int index = 0;//設定索引,用於獲得不同條件下的對映表

int main()

namedwindow(figure1,cv_window_autosize);

imshow(figure1,src);

//學習新內容:影象對映---對映到不同的座標位置(例如:影象上下對稱、左右對稱、對角線對稱、縮小等)

//1. 設定對映表

map_x.create(src.size(),cv_32fc1);//x座標對映表,值為對映後的座標位置

map_y.create(src.size(), cv_32fc1);//y座標對映表,值為對映後的座標位置

//2. 呼叫函式:根據設定的對映表,完成影象對映

int c = 0;//鍵盤輸入

namedwindow(figure2_remap, cv_window_autosize);

while (true)

index = c % 4;

zl_remap();

remap(src, dst_remap,map_x,map_y,inter_linear,border_constant,scalar(100,100,200));

imshow(figure2_remap, dst_remap);

} //waitkey(0);

return 0;

}void zl_remap(void)

else

break;//一定要加上這個,要不然按鍵之後,影象不更新

case 1:

map_x.at(row, col) = src.cols-1 - col;

map_y.at(row, col) = src.rows-1 - row;

break;//一定要加上這個,要不然按鍵之後,影象不更新

case 2:

map_x.at(row, col) = src.cols - 1 - col;

map_y.at(row, col) = row;

break;//一定要加上這個,要不然按鍵之後,影象不更新

case 3:

map_x.at(row, col) = col;

map_y.at(row, col) = src.rows - 1 - row;

break;//一定要加上這個,要不然按鍵之後,影象不更新

//default:

//break;

}} }

}

三 除錯結果

shell學習記錄 2 2

echo 這是指令碼的名稱 0 echo 這是指令碼的第1個引數 1 echo 這是指令碼的第2個引數 2 echo 這是指令碼的第3個引數 3 echo 這是指令碼的第4個引數 4 echo 這是指令碼的第5個引數 5 echo 這是指令碼的第6個引數 6 echo 這是指令碼的第7個引數 7 e...

opencv學習筆記 22 圓檢測

使用霍夫圓檢測的時候需要注意的是 霍夫圓檢測對雜訊特別敏感,需要對影象進行降噪處理。有時候出錯可以是因為處理過度或者沒有處理造成,我們可以通過顯示處理之後的影象檢查出錯點。import cv2 as cv import numpy as np defdetect circles demo image...

學習opencv記錄 三)

include include highgui.h include cv.h 這種訪問操作比cvget系列函式更快,因為不需要入棧出棧,只是通過指標偏移來進行的 int main int argc,char argv cvmat mat cvinitmatheader mat,3,6,cv 32fc...