printf("ho_tari\n");

Chapter6 : 영상의 산술 및 논리 연산 본문

OpenCV

Chapter6 : 영상의 산술 및 논리 연산

호타리 2023. 9. 14. 13:56

<OpenCV_Projects.cpp>

#include <opencv2/opencv.hpp>

extern void arithmetic1();
extern void logical();

int main() 
{
    std::cout << CV_VERSION << std::endl;

    //arithmetic1();
    logical();
}

 

<arithmetic1.cpp>

#pragma once
#include <opencv2/opencv.hpp>

void arithmetic1()
{
	cv::Mat src1 = cv::imread("lenna256.bmp", cv::IMREAD_GRAYSCALE);
	cv::Mat src2 = cv::imread("square.bmp", cv::IMREAD_GRAYSCALE);

	if (src1.empty() or src2.empty()) return;

	std::cout << src1.size << std::endl;
	std::cout << src2.size << std::endl;

	cv::Mat dst1;
	cv::add(src1, src2, dst1);	// 합
	cv::Mat dst2;	
	cv::subtract(src1, src2, dst2);	// 차
	cv::Mat dst3;
	cv::absdiff(src1, src2, dst3);	// 절댓값 차
	cv::Mat dst4;
	cv::namedWindow("ADDWEIGHTED");
	for (double i = 0.0; i <= 1.0; i = i + 0.2)
	{
		cv::addWeighted(src1, i, src2, 1.0 - i, 0.0, dst4);
		cv::imshow("ADDWEIGHTED", dst4);
		cv::waitKey();
	}

	cv::imshow("SRC1", src1);
	cv::imshow("SRC2", src2);
	cv::imshow("DST1", dst1);
	cv::imshow("DST2", dst2);
	cv::imshow("DST3", dst3);
	cv::waitKey();
	cv::destroyAllWindows();
}

<compile 결과>

키보드 아무키를 누를 때마다 점점 나타난다

 

<logical.cpp>

#pragma once
#include <opencv2/opencv.hpp>

void logical()
{
	cv::Mat src1 = cv::imread("lenna256.bmp", cv::IMREAD_GRAYSCALE);
	cv::Mat src2 = cv::imread("square.bmp", cv::IMREAD_GRAYSCALE);

	if (src1.empty() or src2.empty()) return;

	cv::Mat dst1(256, 256, CV_8UC1);
	cv::Mat dst2(256, 256, CV_8UC1);
	cv::Mat dst3(256, 256, CV_8UC1);
	cv::Mat dst4(256, 256, CV_8UC1);

	cv::imshow("SRC1", src1);
	cv::imshow("SRC2", src2);

	cv::bitwise_and(src1, src2, dst1);	// 논리곱
	cv::imshow("DST1", dst1);

	cv::bitwise_or(src1, src2, dst2);	// 논리합
	cv::imshow("DST2", dst2);

	cv::bitwise_xor(src1, src2, dst3);	// 배타적 논리합 (같으면 0 (false), 다르면 1 (true))
	cv::imshow("DST3", dst3);

	cv::bitwise_not(src1, dst4);	// 부정 연산
	cv::imshow("DST4", dst4);

	cv::waitKey();
	cv::destroyAllWindows();
}

<compile 결과>