CodeBlocks配置opencv(c++人臉識別)

CodeBlocks配置opencv其實非常簡單
就是要CodeBlocks連接上opencv的庫
就是添加.so文件
settings–>complier settings–>Linker setings
在這裏插入圖片描述
點擊add,旁邊有個文件瀏覽,進入usr/local/lib/
就會看到好多libopencv_xxxx.so的文件,建議把所有的.so文件都加進去
直接全選添加,然後ok

這樣就完成了CodeBlocks配置opencv

下面我們試一個人臉是識別的例程
此處一定要加上#include <opencv2/objdetect/objdetect.hpp>
不然CascadeClassifier會報錯

#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/objdetect/objdetect.hpp>

using namespace cv;
using namespace std;


CascadeClassifier face_cascader;
String filename = "/home/pi/opencv-3.4.3/data/haarcascades_cuda/haarcascade_eye_tree_eyeglasses.xml";   //官方訓練好的文件

int main()
{
    if (!face_cascader.load(filename))
	{
		printf("could not load face featuew data...\n");
	}
	VideoCapture capture(0);
	Mat frame;
	Mat gray;
	vector<Rect> faces;
	while (1)
	{
		capture >> frame;

		cvtColor(frame, gray,COLOR_BGR2GRAY);
		equalizeHist(gray, gray);
		face_cascader.detectMultiScale(gray, faces, 1.2, 3, 0, Size(50, 50));
		for (size_t t = 0; t < faces.size(); t++)
		{
			rectangle(frame, faces[static_cast<int>(t)], Scalar(0, 0, 255), 2, 8, 0);
		}
		imshow("人臉識別", frame);
		printf("1");
		char c = waitKey(100);
		if (c == 27)
		{
			break;
		}
	}

	capture.release();
	waitKey(0);
	return 0;
}

運行結果成功了
截圖我就不放了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章