#include "opencv2\opencv.hpp" //기본적으로 불러오는 헤더
static CascadeClassifier face_Cascade //검색 시스템의 클래스
face.load("haarcascade_frontalface_default.xml")) //이런식으로 불러와서 사용, 성공시 true반환
face_Cascade.detectMultiScale(Mat 이미지,vector<Rect> 저장할 위치, 지정된 값만큼 스케일을 바꾸면서 검색, 후보를 몇개나 찾아볼지, 검색옵션(하단참조)CV_HAAR_FIND_BIGGEST_OBJECT
,Size 최소 사이즈 Size(10,10)이렇게 쓰면 됨,Size 최대사이즈)
검색옵션(or연산으로 중첩가능)
CV_HAAR_FIND_BIGGEST_OBJECT 중첩시 가장 큰거만 반환
CV_HAAR_SCALE_IMAGE 이미지의 스케일을 바꾸면서 검색
CV_HAAR_DO_ROUGH_SEARCH 한개만 찾음
Mat는 2차원 배열같은것, img대용품
cvtColor(입력 Mat, 출력 Mat, CV_RGB2GRAY); //그레이생성
cvSetImageROI(img_buff,cvRect(0,0, img_buff.size().width, img_buff.size().height)); //스케일변경인줄 알았는데 아닌듯
circle(Mat형 이미지, Point(x,y),크기,색상 Scalar(0, 0, 255),굵기,0);//원그리기
putText(Mat 이미지,표시할 문자열,Point(x,y),폰트 (하단참조),폰트 굵기(기본값1),색상 Scalar(255, 255, 255))
CV_FONT_HERSHEY_SIMPLEX //산세리프폰트 중간크기
CV_FONT_HERSHEY_PLAIN //산세리프폰트 작은크기
CV_FONT_HERSHEY_DUPLEX //세리프폰트 2줄
CV_FONT_HERSHEY_COMPLEX //세리프폰트 중간크기
CV_FONT_HERSHEY_TRIPLEX //세리프폰트 3줄
CV_FONT_HERSHEY_COMPLEX_SMALL //세리프폰트 작은크기
CV_FONT_HERSHEY_SCRIPT_SIMPLEX //필기체
CV_FONT_HERSHEY_SCRIPT_COMPLEX //필기체2CV_FONT_ITALC //이탤릭체
Mat img = imread("Lenna.png"); //이미지열기
imwrite("copy.jpg", img );//저장하기
mat접근방법
//at접근, 간편하지만 느림
if (img_t.type() == CV_8UC1)//단일8비트 채널
{
for (int i = 0; i < img_t.cols; i ++)//x축
{
for (int j = 0; j < img_t.rows; j ++)//y축
{
img_t.at<uchar>(i, j) = 255;//밝기
}
}
}
if (img_t.type() == CV_8UC3)//3색 8비트 채널
{
for (int i = 0; i < img_t.cols; i ++)//x축
{
for (int j = 0; j < img_t.rows; j ++)//y축
{
img_t2.at<Vec3b>(j, i)[0] = 255;//B
img_t2.at<Vec3b>(j, i)[1] = 255;//G
img_t2.at<Vec3b>(j, i)[2] = 255;//R
img_t2.at<Vec3b>(j, i)= Vec3b(255,255,255);//BGR
}
}
}
포인터접근
if (img_t2.type()==CV_8UC3)//3색 8비트 채널
{
float _t;
int img_t2_channels= img_t2.channels();
for (int j = 0; j < img_t2.rows; j++)//y축
{
uchar * ptr_img_t = img_t2.ptr<uchar>(j);
for (int i = 0; i < img_t2.cols*img_t2_channels; i += img_t2_channels)//x축
{
float r, g, b, _max, _min;
float h, s, v;
//if (img_t2.channels() == 3)
r = ptr_img_t[i + 2];
g = ptr_img_t[i + 1];
b = ptr_img_t[i + 0];
}
}
}
캠 연결