复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86// cascade.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <opencv2/opencv.hpp> #include <iostream> #include <string> using namespace cv; using namespace std; void creatTable(vector<int> &table, int alpha, int beta) { for (int i = 0; i < 255; i++) { table.push_back(alpha * i + beta); if (table[i] > 255) { table[i] = 255; } if(table[i] < 0) { table[i] = 0; } } } void BrightnessAdjustment(Mat& src, Mat& dst, vector<int> table) { for (int i = 0; i < src.rows; i++) { uchar* data1 = src.ptr<uchar>(i); uchar* data2 = dst.ptr<uchar>(i); for (int j = 0; j < src.cols; j++) { data2[j] = table[data1[j]]; } } } int main(int argc, char** argv) { String fileName = "D:\temp\cascade\model\haarcascade_frontalface_alt.xml";//设置文件路径 CascadeClassifier face_classifier;//创建分类器 if (!face_classifier.load(fileName)) {//加载分类数据 printf("could not load face feature data...n"); return -1; } //string imagePath = "D:\temp\cascade\test"; string imagePath = "D:\temp\cascade\image\train\1"; vector<String> vecImage; glob(imagePath, vecImage); for (int i = 0; i < vecImage.size(); i++) { Mat src = imread(vecImage[i]); if (src.empty()) { printf("could not load image...n"); return -1; } //imshow("input image", src); Mat gray; cvtColor(src, gray, COLOR_BGR2GRAY);//转成灰度图 equalizeHist(gray, gray);//直方图均衡化,提高对比度 vector<int> table; creatTable(table, 1.5, 10); BrightnessAdjustment(gray, gray, table); imshow("input image", gray); waitKey(0); vector<Rect> faces; face_classifier.detectMultiScale(gray, faces, 1.2, 3, 0, Size(24, 24));//在多尺度上检测 for (size_t t = 0; t < faces.size(); t++) { rectangle(src, faces[static_cast<int>(t)], Scalar(0, 0, 255), 2, 8, 0); } imshow("detect faces", src); waitKey(0); } return 0; }
最后
以上就是哭泣小刺猬最近收集整理的关于opencv 调节图像对比度及亮度的人脸识别的全部内容,更多相关opencv内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复