原创 一個點繞任意點旋轉θ度後的點的座標

假設對圖片上任意點(x,y),繞一個座標點(rx0,ry0)逆時針旋轉a角度後的新的座標設爲(x0, y0),有公式:     x0= (x - rx0)*cos(a) - (y - ry0)*sin(a) + rx0 ;     y0=

原创 學習OpenCV:matchTemplate模板匹配原理分析

自己的一些理解,僅供參考。 模板匹配無法就是在目標圖中找出與模板圖最相似的座標 。 通過整體圖像的整體灰度值來判斷就是灰度匹配; 通過圖像的邊緣信息來判斷就是灰度匹配; 通過圖像的角點等特徵點來判斷就是特徵匹配。 模板匹配中,最重要的就是

原创 SSE指令學習:_mm_shuffle_epi8

_mm_setr_epi8:Integer, sets中的函數,初始化賦值。 _mm_shuffle_epi8:第一個參數爲輸入數組;第二個參數爲掩模,對應輸入數組的第幾個值。 功能:對數據進行重組,非常靈活。當掩模值大於1時,該值除以1

原创 VS中統計代碼行數的一種方法

也可以下載軟件“linecount.exe”

原创 SSE速度優化:彩色圖轉灰度圖 (OpenCV、SSE、AVX、OpenMP、std::async線程對比)

運行結果爲:詳情看代碼  // TestOpenCV4.cpp : 此文件包含 "main" 函數。程序執行將在此處開始並結束。 // #include "pch.h" #include <windows.h> #include "v

原创 學習Python:Numpy的線性代數模塊(linear algebra)linalg

1、使用linalg的solve解方程,如: x − 2y + z = 0   2y − 8z = 8   −4x + 5y + 9z = −9   b = np.mat('1 -2 1;0 2 -8;-4 5 9') value =

原创 GPU架構入門

https://www.cnblogs.com/timlly/p/11471507.html https://blog.csdn.net/junparadox/article/details/50540602

原创 Halcon算子:XLD

XLDD(eXtended Line Descrips)表示亞像素的輪廓和多邊形。

原创 Halcon算子:灰度共生矩陣gen_cooc_matrix、cooc_feature_matrix、cooc_feature_image

1、灰度共生矩陣          圖像的紋理一般具有重複性,紋理單元往往會以一定的規律出現的圖像上,因此這種圖像中一定距離之內往往會有兩兩灰度相同的像素點對,這種特性就適合用灰度共生矩陣表示。          取圖像(N×N)中任意一

原创 Halcon算子:NCC匹配(create_ncc_model)與形狀匹配(create_shape_model)對比

當選取的特徵明顯且差異小時,選擇兩者的區別不大。 需要注意的是,NCC對遮擋和雜波以及圖像中的非線性光照變化非常敏感。如果在有遮擋、雜亂或非線性照明變化的情況下發現模型,則應使用基於形狀的匹配(如create_shape_model)執行

原创 學習OpenCV:imgproc模塊分類

imgproc模塊中的分類及對應行數,簡單整理了一下,有需要的可方便定位查找。 枚舉定義,0-835 GeneralizedHough,837-944, imgproc_hist,945-982: imgproc_subdiv2d,

原创 win10安裝Pytorch GPU

https://blog.csdn.net/weixin_41762173/article/details/104261249 按照這篇文章執行下面指令時一直各種包都下載失敗,可嘗試重複下載可能可以成功。無法下載成功採用本地離線安裝。

原创 使用C++解析XML文件

       該xml文件爲labelImg.exe生成,通過C++獲取到該文件中的標籤名字與位置,然後保存到容器中供後續方便調用。 1、下載庫tinyxml; 2、將tinyxml.h、tinystr.h、tinystr.cpp、tin

原创 TBB、OpenMP對比

1、TBB需要相當可觀的重新設計程序,而OpenMP足夠簡單; 2、TBB不太適合並行化已有的實現(軟件),它爲新設計的並行程序培養一種好的編程風格和更高的抽象層; 3、在論文的實驗中,OpenMP稍稍超過TBB; 4、TBB只能針對C+

原创 C++中string的UTF-8格式

string stringUTF8(const string& str) { int nwLen = ::MultiByteToWideChar(CP_ACP, 0, str.c_str(), -1, NULL, 0); wchar