1. 程式人生 > >【OpenCV, C++】實現向下光柵追蹤檢測邊緣

【OpenCV, C++】實現向下光柵追蹤檢測邊緣

輸出 mat bsp rownum 灰度 col 邊緣 ray 設計

設計函數如下:

其中

void gratingdetect(Mat &graysrc, Mat &graydst, int high, int low);

參數列表中,第一項是輸入的灰度待跟蹤圖像,第二項是輸出圖像。

第三項high是檢測閾值,第四項low是跟蹤閾值。

void gratingdetect(Mat &graysrc, Mat &graydst, int high, int low)
{
    int rowNum = graysrc.rows;
    int colNum = graysrc.cols;
    for (int i = 0
; i < rowNum; i++) { uchar * d_data = graydst.ptr<uchar>(i); uchar * s_data = graysrc.ptr<uchar>(i); for (int j = 0; j < colNum; j++) { if (s_data[j] >= high) { d_data[j] = 255; int temp = s_data[j];
if (i < rowNum - 1) { d_data = graydst.ptr<uchar>(i + 1); s_data = graysrc.ptr<uchar>(i + 1); if (j > 0 && j < colNum - 1) { for (int k = -1; k < 2; k++) {
if (abs(temp - s_data[j + k]) <= low) d_data[j + k] = 255; else d_data[j + k] = 0; } } d_data = graydst.ptr<uchar>(i); s_data = graysrc.ptr<uchar>(i); } } else d_data[j] = 0; } } }

【OpenCV, C++】實現向下光柵追蹤檢測邊緣