DennisLiu1993 / Fastest_Image_Pattern_Matching

C++ implementation of a ScienceDirect paper "An accelerating cpu-based correlation-based image alignment for real-time automatic optical inspection"
BSD 2-Clause "Simplified" License
859 stars 205 forks source link

您好,我想要以C#實作 #51

Open 00557134 opened 1 year ago

00557134 commented 1 year ago

您好, 感謝分享這項專案,因為對C++熟練度不足。 想請問如果要以C#實作並先排除SIMD加速的部分,關鍵演算法的部分是哪幾個函式。 只需要Template Matching的功能,OCR暫時也不用。

謝謝

DennisLiu1993 commented 1 year ago

看match()和load_dst()就行了

00557134 commented 1 year ago

那請問m_ckBitwiseNot.GetCheck () 這類的是甚麼功用

DennisLiu1993 commented 1 year ago

只是確認checkbox有沒有勾選

00557134 commented 1 year ago

了解 謝謝。 1.那請問對讀取進來的搜尋圖片和目標物圖片,兩者的尺寸有限制嗎? 還是目標物圖片只要比搜尋圖片小即可。 如果我是直接剪取搜尋圖片,那是不是就不需要做LoadDst內的這些操作。 double dScaleX = rectDst.Width () / (double)m_matDst.cols; double dScaleY = rectDst.Height () / (double)m_matDst.rows; m_dDstScale = min (dScaleX, dScaleY);

讀取完就可以直接執行LearnPattern和Match。

2.想請問CCOEFF_Denominator中 integral (matSrc, sum, sqsum, CV_64F);

q0 = (double)sqsum.data; q1 = q0 + pTemplData->vecPyramid[iLayer].cols; q2 = (double)(sqsum.data + pTemplData->vecPyramid[iLayer].rows sqsum.step); q3 = q2 + pTemplData->vecPyramid[iLayer].cols; 為什麼q2指標在移動道不同列時,乘上了step(一列的元素量8),但q1和q3移動到別行就不需要乘上8來移動。

  1. 請問方便提供打包好的DLL檔案供C#專案使用嗎?
DennisLiu1993 commented 11 months ago
  1. 有,看Match()內的check function
  2. 參考reference paper
  3. charged item