原创 SeetaFaceEngine系列1:Face Detection編譯和使用

SeetaFace,根據GitHub上的介紹,就是一個開源的人臉檢測、矯正和識別的開源庫,是採用C++來編寫的,並且是在CPU上執行的,沒有用到GPU,但是可以用SSE或者OpenMP來加速。整個庫分爲三部分,SeetaFace Dete

原创 C++交換兩個變量值的方法

簡單地列一下交換兩個變量值地幾種方法。 1、通過第三方實現,這一種也是最最最常見普通的方法: void swap(int *a, int *b) { int tmp = *a; *a = *b; *b = tmp

原创 OpenCV和Qt的圖像格式互轉

做圖像處理的時候經常使需要用到opencv的,這應該是免費的圖像處理庫中用得最廣泛而且最好用的庫了吧。然後有時候想用界面來展示點東西的時候,我們就需要編寫個界面,編寫界面的方法千千萬,弱水三千我只取一瓢飲,所以我用Qt來寫界面,這個時候,

原创 排序之歸併排序

歸併排序的思想是,將小的有序數組歸併爲一個大的有序數組,也就是對於一個數組,將其不管拆分爲小的數組進行排序,然後將排好序的小數組再歸併爲稍大的數組,再將稍大的數組歸併爲原來的數組。 歸併排序的是穩定排序,其時間複雜度爲 歸併的時候要判斷三

原创 SeetaFaceEngine系列3:Face Identification編譯和使用

前面兩篇介紹了怎樣編譯SeetaFace的前兩部分,現在就來講下第三部分Face Identification的編譯和使用。 其實,步驟基本上是一直的,如下: 1、新建一個空的DLL工程; 2、修改配置器; 3、添加include  

原创 在VS中編寫Qt5涉及到的一點字符串問題

在VS中開發Qt5程序似乎成了我的一種習慣,因爲覺得VS簡直不能再溜了,不愧是“宇宙第一IDE”。 所以在開發中難免會遇到中文顯示亂碼的問題,網上找到的很多方法都是類似於下面這樣的: QStringLiteral("中文") 或者這樣的

原创 It can be a face application using SeetaFace and Qt.

之前編譯了一下SeetaFace的庫,用於人臉檢測、特徵點定位和人臉識別的功能,然後昨天就用Qt寫了一個軟件用於實現。 工程的文件還是比較簡單的,一個界面類和一個SeetaFace的線程類而已。這裏主要涉及到Qt的多線程,Qt的多線程還是

原创 SeetaFaceEngine系列2:Face Alignment編譯和使用

前面一篇寫了編譯人臉檢測部分,現在就介紹下人臉配準部分,SeetaFace的Face Alignment通過人臉的五個關鍵點來配準人臉,也就是雙眼、鼻尖、兩個嘴角。 這部分的編譯也和上一篇一樣,步驟如下: 1、創建空的DLL工程:  

原创 基於Qt5的排序算法簡單可視化

之前寫了幾個排序算法,然後看到別人將排序算法的過程可視化出來,所以就想嘗試一下,然後就用Qt簡單寫了個界面,用QImage和QPainter來畫圖顯示,代碼比較簡單。 我的想法是畫圖的時候,圖像的X軸對應數組的,然後畫垂直線,線的高度就是

原创 排序之希爾排序

希爾排序,因D.L.Shell於1959年提出而得名,核心思想:按照一定增量d,對比第i位元素和第i+d位元素。 希爾排序應該算是在插入排序的基礎上開發出來的排序算法。 希爾排序是不穩定排序,時間複雜度爲:希爾排序的時間複雜度是與選取的增

原创 排序之快速排序

快速排序,從名字來看就夠藐視一切了,不過經過測試,快速排序還是比較對得起這個名字的,速度還是比較快的,不過快速排序依然是一個不穩定排序,其平均時間複雜度爲NlogN。 快速排序的基本思想是在一個數組中找一個元素爲參考值,將大於它的元素放在

原创 瑞士軍刀DLib的VS2015編譯

Dlib的官方解釋是: Dlib is a modern C++ toolkit containing machine learning algorithms and tools for creating complex softwar

原创 排序之簡單選擇排序

基本思想:每次都從剩下的記錄中選出關鍵字最大或者最小的來排序。 簡單選擇排序是不穩定排序,平均時間複雜度:,可以這樣理解,就是最差的情況我們要對比多少次才能得到最終的排序,一共是: 然後需要平移的次數最差是n次,所以,時間複雜度爲:

原创 Dlib筆記二:matrix或array2d與cv::Mat的互轉

因爲經常習慣的用OpenCV來做圖像處理,所以難免希望將其他庫的圖像數據與OpenCV互轉,所以今天就記錄下這種互轉的方法。 1、dlib::matrix/dlib::array2d轉cv::Mat 前面說了,定義好一個matrix或者a

原创 排序之插入排序

插入排序或者叫直接插入排序,簡單粗暴,核心思想就是:不管選最大還是最小,每次都把沒有排序的元素插入到已經排序的元素中間的合適的位置上。所以直接插入排序是把爲排序的元素與排好序的元素逐一對比,直到處於排好序的元素中間。 直接插入排序是穩定排