2018. 6. 6. 00:14ㆍComputer Vision
OpenCV를 이용해서 사진을 회색으로 바꿔주는 프로그램을 만들어 보았습니다.
그럼 바로 코드를 보겠습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | #include<iostream> #include<opencv2/opencv.hpp> #include<conio.h> using namespace std; using namespace cv; int main() { system("title Change to gray"); string ImageLink;//이미지 주소 cout << "이미지를 드래그해서 놓으세요" << endl; cin >> ImageLink; Mat Image = imread(ImageLink, CV_LOAD_IMAGE_GRAYSCALE);//이미지를 회색으로 불러오기 cout << "저장하시려면 s를 눌러주세요" << endl; char save = _getch(); if (save == 's' || save == 'S') { string save_name; cout << "저장 위치는 프로그램이 있은 위치입니다." << endl; cout << "저장할 이름을 입력하세요(확장자 포함) : "; cin >> save_name; imwrite(save_name, Image);//이미지 저장 imshow("Preview", Image);//이미지창 띄우기 waitKey();//키 입력이 들어올 때까지 창을 유지함 } } | cs |
이 코드에서 보셔야할 부분은 13번째 줄과 27번째 줄 그리고 29번째 줄입니다.
13번째 줄의 Mat은 이미지 컨테이너입니다. 그리고 imread함수는 파일로부터 이미지를 불러오는 함수입니다.
imread(const string&filename, int flags = IMREAD_COLOR)
이런 식으로 함수가 되어있습니다.
그래서 Mat 변수명 = imread(이미지 주소, 플레그);이러면 이미지를 불러올 수 있습니다.
flag의 종류는 밑과 같습니다.(이보다 많습니다.)
*CV_LOAD_IMAGE_ANYDEPTH : 입력에 깊이가 있으면 16bit/32bit를 반환, 그렇지 않으면 8bit를 반환합니다.
*CV_LOAD_IMAGE_COLOR : 항상 이미지를 색상 1로 반환합니다.
*CV_LOAD_IMAGE_GRAYSCALE : 항상 이미지를 회색 스케일로 변환합니다.
27번째 줄은 imwrite라는 이미지 저장 함수입니다.
imwrite(const string&filename, inputArray img, const vector<int>¶ms = vector<int> () )
첫 인자에는 저장할 이름이 들어가고, 2번째 인자에는 Mat형 변수 이름이 들어가야 합니다.
29번째 줄은 imshow라는 이미지를 띄우는 함수입니다.
imshow(const string& winname, inputArray Mat)
첫 인자에는 창이 띄워지면 그 창의 이름을 정하는 인자입니다. 그리고 2번째 인자는 이미지를 띄울 Mat 변수를 넣으면 됩니다.
구동영상입니다.
BGM : 2SCOOPS - Donuts [NCS Release]
Link : https://www.youtube.com/watch?v=lc4Tt-CU-i0
감사합니다.
'Computer Vision' 카테고리의 다른 글
[OpenCV]OpenCV란?(OpenCV3.4.1 설치) (0) | 2018.05.20 |
---|