프로그래머스/OPENCV

영상의 산술 및 논리연산

junl 2022. 12. 2. 02:25

lenna.bmp
0.75MB
lenna256.bmp
0.06MB
square.bmp
0.06MB

#include <iostream>
#include "opencv2/opencv.hpp"

using namespace std;
using namespace cv;
#define TC 9

int main()
{
	Mat src1 = imread("lenna256.bmp", IMREAD_GRAYSCALE);
	Mat src2 = imread("square.bmp", IMREAD_GRAYSCALE);
	if (src1.empty() || src2.empty()) {
		cerr << "Image laod failed!" << endl;
		return -1;
	}

	Mat dst;

#if TC==1
	add(src1, src2, dst);
#elif TC == 2
	subtract(src1, src2, dst);
#elif TC==3
	addWeighted(src1, 0.5, src2, 0.5, 0, dst);

#elif TC==4
	absdiff(src1, src2, dst);
#elif TC==5
	multiply(src1, src2, dst);
#elif TC==6
	divide(src1, src2, dst);
/*TC1~6 산술연산*/

//TC7~ 10 논리연산
#elif TC==7
	bitwise_and(src1, src2, dst);

#elif TC==8
	bitwise_or(src1, src2, dst);

#elif TC==9
	bitwise_xor(src1, src2, dst);

#elif TC==10
	bitwise_not(src1, dst);

#endif 0
	imshow("src1", src1);
	imshow("src2", src2);

	imshow("dst", dst);
	waitKey();
}