막 적는다 일단
색 저장 순서 : RGB 아닌 BGR
========================================================
자주쓰는 구문
1. 이미지 불러오기
1
2
3
4
5
6
7
8
9
10
11
12
|
#include "opencv.hpp"
using namespace cv;
using namespace std;
int main()
{
Mat img_bw = imread("example.png",0); // 흑백
Mat img_color = imread("example.png"); // 칼라
imshow("images", img_color); // 영상 출력
waitKey();
return 0;
}
| cs |
2. 이미지 생성
|
// 가로 640 세로 480, 8 bit uchar 1 채널 이미지 생성(Scalar(0)으로 초기화 즉 까만색으로 초기화)
Mat IMAGEch1(640,480,CV_8U,Scalar(0));
// 8 bit uchar 3 채널(CV_RGB(0,0,255)으로 초기화 즉 파란색으로 초기화)
Mat IMAGEch3(640,480,CV_8UC3,CV_RGB(0,0,255));
//Scalar(B,G,R) 순서
//CV_RGB(R,G,B) 순서
| cs |
3. 사이즈 변환
|
resize(IMAGEch1, IMAGEch1re, Size(320, 240)); // 사이즈 변환
| cs |
4. 이미지 복사
|
Mat cIMAGEch1;
IMAGEch1.copyTo(cIMAGEch1); // 복사
Mat cIMAGEch3 = IMAGEch3.clone(); // 복제
|
|
5. 컬러/흑백 변경
|
cvtColor( IMAGEch1, cIMAGEch1, COLOR_GRAY2BGR ); // 칼라로 변경
cvtColor( IMAGEch3, cIMAGEch3, COLOR_BGR2GRAY ); // 흑백으로 변경
| cs |
6. ROI 설정
|
Rect roi(0,0,50,50); // 왼쪽부터 순서대로 x,y,width,height 값
Mat ROIimg = IMAGEch1(roi);
| cs |
7. 영상 반전
|
// 영상 반전
flip(img_color, dst1, 0); // 상하 반전
flip(img_color, dst2, 1); // 좌우 반전
flip(img_color, dst3, -1); // 상하좌우 반전
|
|
8. 영상 회전
|
Point center(640/2,480/2); // 이미지 중심
Mat matRotation = getRotationMatrix2D(center, -90, 1); //-90 : 시계방향 90도
warpAffine( img_color, img_colorr, matRotation, img_color.size() ); // 회전
| cs |
9. Mat <-> Iplimage 변환
|
// Mat --> IplImage
Mat matimg;
IplImage* iplimg;
iplimg = &IplImage(matimg);
// IplImage --> Mat
IplImage* iplimg;
Mat matimg;
matimg = cvarrToMat(iplimg);
| cs |
10. 글자 입력
|
putText(img, "text", Point(x,y), FONT_HERSHEY_SIMPLEX, 1., color, thickness);
| cs |