#include
#include "opencv2/opencv.hpp"
#include
using
namespace
std;
using
namespace cv;
void fillhole(mat * src);//基於漫水填充的孔洞填充
#define pi 3.14156
void main ()
//基於高斯膚色概率模型的人臉檢測結果
const
char * src_namedwindow = "src";
imshow (src_namedwindow , src);
mat tempimg ;
cvtcolor (src, tempimg,cv_rgb2ycrcb );//將顏色空間從rgb轉換為ycrcb
vector
channels;
split (tempimg,channels);//分離出crcb通道
mat cr_img, cb_img;
cr_img = channels[1];
cb_img = channels[2];
//利用二維高斯概率模型計算每個畫素點的膚色相似度
mat pro(cr_img.size(), cv_32fc1 );//定義相似度矩陣
for (int i = 0; ifor (int j = 0; j < src.cols ; j++)
//imshow ("相似度矩陣", pro );
//相似度矩陣歸一化
//double min1=0, max1=0;
//minmaxidx (pro, &min1, &max1);
//cout << max1 << endl;
//mat nor = pro/max1;
mat nor;
normalize (pro, nor,0,1,norm_minmax );
//imshow("歸一化矩陣", nor);
mat mask1 = mat :: zeros (pro.size(), cv_32fc1 );//膚色區模板
mat mask2 (mask1.size(), cv_8uc1 );
double thresh_face = 0.5;//膚色閾值
for (int i = 0; i < nor.rows; i++ )
for ( int j = 0; j < nor.cols ; j++)
imshow("人臉模板", mask1);
mat element1 = getstructuringelement (morph_rect,size(3,3));
erode(mask1, mask1,element1, point(-1,-1), 2);
mat element2 = getstructuringelement (morph_ellipse, size(5,5));
dilate (mask1, mask1,element2);
threshold(mask1, mask2, 0,255,cv_thresh_binary );//將mask1轉為二值圖
mask2.convertto (mask2, cv_8uc1 );//將矩陣轉為
//二值化圖孔洞填充
fillhole(&mask2);
imshow ("填充後", mask2);
//輪廓查詢
vector
> contours;
vector
hierarchy;
//篩選輪廓
vector
label;
int add_lable = 0;
vector
boundrect(contours.size());//定義外接矩形集合
for (int i =0; i < contours.size(); i++)
}imshow("mask2", mask2);
imshow("人臉區",src);
waitkey(0);
//system ("pause");
}void fillhole2(mat *src)//利用漫水填充進行孔洞填充
孔洞填充
影象計算
人臉檢測—基於膚色高斯概率的檢測實現
人臉膚色檢測模型
一 概述 建立模型就是在已知物件的特徵基礎上來給物件建立乙個模型,並藉此對物件實現判斷 檢測 繪製 控制等功能。人臉建模的方式很多,各有各的優缺點 膚色模型較之幾何模型來,要相對簡單,執行速度快。而在膚色模型中常用的是高斯模型。二 建模 1 高斯膚色模型 從圖 2 9 中可以看出膚色在 cr cb ...
基於RGB模型和HBV模型的簡單膚色檢測器
在網上找了一些,提取了一部分膚色的rgb和hbv模型的引數值。讀取並得到他的三維矩陣 imshow i r i 1 紅色通道 轉化為unit8型別 0 255 取其中一維 g i 2 綠色通道 b i 3 藍色通道 id r 150 g 100 g 210 b 90 b 200 g b 40 r g...
基於OpenCV的簡單的人臉檢測
這個是在數字影象處理課程裡面的乙個小實踐內容。參考網上已有 重新配置編譯,效果不錯。人臉識別的庫使用的是haarcascade frontalface檔案,包含在opencv當中的。關鍵部分 如下 本原始碼只為學習交流之用 typersever from gzhu static cvmemstora...