728x90
OpenCV에는 cvNot이라는 이미지 반전 시키는 함수가 있어서 이번에도 친구가 보내준 아이유 사진을 반전시켜봤다. 인물 사진을 반전시키는 건 확실히... 좀 그렇다.
cvNot(const CvArr *src, const CvArr *dst)
src는 변환하고자 하는 이미지를, dst는 변환한 이미지를 저장할 곳으로 사용한다. 유의할 점이 두 가지 정도 있다.
1. 함수에 이미지를 Mat이 아닌 IplImage로 다루어야 한다.
2. dst로 받을 IplImage는 nullptr로 비워두는 것이 아니라 cvCreateImage()로 적절하게 할당해줘야 한다.
원본
결과
소스코드
#include <opencv2/opencv.hpp> using namespace cv; using namespace std; int main(void) { Mat srcImage = imread("IU.jpg"); Mat destImage; IplImage *src = new IplImage(srcImage); IplImage *dest = cvCreateImage(cvGetSize(src), IPL_DEPTH_8U, 3); cvNot(src, dest); destImage = cvarrToMat(dest); imwrite("invertIU.jpg", destImage); cvNamedWindow("Original", CV_WINDOW_AUTOSIZE); cvNamedWindow("Result", CV_WINDOW_AUTOSIZE); imshow("Original", srcImage); imshow("Result", destImage); waitKey(0); return 0; }
728x90
'Library > OpenCV' 카테고리의 다른 글
Windows10 CUDA + OpenCV 4 빌드 에러 LINK : fatal error LNK1181: '..\..\lib\Release\opencv_world440.lib' (0) | 2020.08.29 |
---|---|
OpenCV] Canny 함수 (0) | 2018.05.01 |
OpenCV] findContours를 사용해 윤곽(contour) 추출하기 (0) | 2018.04.26 |
OpenCV] 이미지를 회색조(Grayscale)로 변환 (0) | 2018.03.14 |
Visual Studio에서 OpenCV 시작하기 (0) | 2018.03.11 |