Mat src = imread ("mandrill.bmp");
Mat dst(src.rows, src.cols, cV_8UC3);
for (int y = 0; y < src.rows; y++) {
for (int x = 0; x < src.cols; x++) {
dst.at<Vec3b>(y, x) = Vec3b(255, 255, 255) - src.at<Vec3b>(y, x);
}
}
void cvtColor (InputArray src, OutputArray dst, int code, int dstCn = 0);
cvtColor(src, gray, COLOR_BGR2GRAY);
src: 입력 영상
dst: 출력 영상
code: 색 변환 코드 (OpenCV 문서 페이지 참고)
dstCn: 결과 영상의 채널수. 0이면 자동 결정됨.
void split(InputArray src, OutputArrayOfArrays mv);
void merge (InputArrayofArrays mv, OutputArray dst);
vector<Mat> planes;
split(src, planes);
merge(planes, dst);
src: (입력) 다채널 행렬
mv: (출력) or (입력) 행렬의 벡터. vector\
dst: (출력) 다채널 행렬
Mat src = imread("mandrill.bmp", IMREAD_COLOR);
Mat src_ycrcb;
cvtColor(src, src_ycrcb, COLOR_BGR2YCrCb);
vector<Mat> ycrcb_planes;
split(src_ycrcb, ycrcb_planes);
equalizeHist(ycrcb_planes[0], ycrcb_planes[0]);
Mat dst_ycrcb, dst;
merge (ycrcb_planes, dst_ycrcb);
cvtColor(dst_ycrcb, dst, COLOR_YCrCb2BGR);
void inRange(InputArray src, InputArray lowerb, InputArray upperb, OutputArray dst);
Mast dst_mask;
Scalar lowerb(pos_hue1, pos_sat1, 0);
Scalar upperb(pos_hue2, pos_sat2, 255);
inRange(src_hsv, lowerb, upperb, dst_mask);
src: 입력 행렬
lowerb: 하한 값 (Mat 또는 Scalar)
upperb: 상한 값 (Mat 또는 Scalar)
dst: 입력 영상과 동일 크기. cV_8UC1 타입. 범위 안에 들어가는 픽셀 값만 255로 설정됨.
void calcBackProject(const Mat* images, int nimages, const int* channels,
InputArray hist, OutputArray backProject, const float** ranges,
double scale = 1, bool uniform = true);
Mat ref, ref_ycrcb;
ref = imread("ref.png", IMREAD_COLOR);
mask = imread("mask.bmp", IMREAD_GRAYSCALE);
cvtColor(ref, ref_ycrcb, COLOR_BGR2YCrCb);
Mat hist
int nimages = 1;
int channels[] = { 1, 2 }; //YCRCB [0, 1, 2]
int dims = 2;
int histSize[] = { 256, 256 };
float cr_range[] = { 0, 256 };
float cb_range[] = { 0, 256 };
const float* ranges[] = { cr_range, cb_range };
calcHist(&ref_ycrcb, nimages, channels, Mat(), hist, dims, histSize, ranges);
Mat src, src_ycrcb;
src = imread("kids.png", IMREAD_COLOR);
cvtColor(src, src_ycrcb, COLOR_BGR2YCrCb);
Mat backproj;
calcBackProject(&src_ycrcb, nimanges, channels, hist, backproj, ranges);
images: 입력 영상 주소 (또는 입력 영상 배열 주소)
nimages: 입력 영상 개수
channels: 역투영 계산에 사용할 채널 목록 (배열)
hist: 입력 히스토그램
backProject: (출력) 히스토그램 역투영 결과 행렬. 입력 영상과 동일 크기, cv_8U.
ranges: 히스토그램 빈 경계값 배열의 배열.