功能实现为:截取一寸照片底下八分之一处部分,并判断衣服为浅色或深色
代码实现为:
int handle_photos(cv::Mat bgr){
//选取照片底面部分
cv::Rect rect(0,bgr.rows-50,bgr.cols-1,40);
cv::Mat cut_img = bgr(rect);
cv::imwrite("cut_img.png",cut_img);
//将三通道的图片转为单通道
cv::Mat cut_img_gray;
cut_img_gray = cv::Mat::zeros(cut_img.size(),cut_img.type());
cv::cvtColor(cut_img,cut_img_gray,cv::COLOR_BGR2GRAY);
cv::imwrite("gray_cut_img.png",cut_img_gray);
int color_sum = 0;//用于统计像素值
int media_len = int(cut_img_gray.rows/3);//照片三分之一长度
for(int s=0;s<cut_img_gray.rows;s++){
if(s > media_len && s < 2*media_len)//照片三分之一部分不进行像素统计
continue;
else{
for(int t=0; t<cut_img_gray.cols; t++){
int tt = cut_img_gray.at<uchar >(s,t);
if(tt > 137) //137为判断深浅颜色选取的阈值
color_sum&