printf("ho_tari\n");

Examples 본문

OpenCV

Examples

호타리 2023. 9. 18. 15:06

1. 영상이미지 파일 이름은 lenna.png입니다. 이것을 OpenCV 라이브러리를 이용해서 화면에 영상을 출력하는 코딩을 구현해보시오

<main.cpp>

#include <opencv2/opencv.hpp>

extern void test_1();

int main()
{
	test_1();
}

<test_1.cpp>

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

void test_1()
{
    cv::Mat img = cv::imread("lenna.bmp");

    if (img.empty()) return;
    
    cv::namedWindow("LENNA", cv::WINDOW_NORMAL);
    cv::imshow("LENNA", img);
    cv::waitKey(0);
    cv::destroyAllWindows();
}

<compile 결과>

 

2. lenna.png는 color 4채널 이미지입니다.모든 컬러(RGB)가 120 정도 더 밝아지도록 코딩을 해보시오

<main.cpp>

#include <opencv2/opencv.hpp>

extern void test_2();

int main()
{
	test_2();
}

<test_2.cpp>

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

void test_2() 
{
    cv::Mat img = cv::imread("Lenna.bmp");

    if (img.empty()) return;

    img += cv::Scalar(120, 120, 120);
    cv::namedWindow("LENNA", cv::WINDOW_NORMAL);
    cv::imshow("LENNA", img);
    cv::waitKey();
    cv::destroyAllWindows();
}

<compile 결과>

 

3. lenna.png에서 전체 pixel 사이즈에서 400 x 400 pixel 만 추출해서 화면에 가운데에 영상을 출력하는 코딩을 해보시오

<main.cpp>

#include <opencv2/opencv.hpp>

extern void test_3();

int main()
{
	test_3();
}

<test_3.cpp>

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

void test_3()
{
    cv::Mat img = cv::imread("lenna.bmp");

    if (img.empty()) return;

    cv::Mat dst = img(cv::Rect(100, 100, 400, 400));

    
    cv::imshow("LENNA", dst);
    cv::waitKey();
    cv::destroyAllWindows();

}

<compile 결과>

 

4. lenna.png 전체 pixel과 똑같은 사이즈와 똑같은 타입을 복사하는데 걸리는 연산시간을 측정하는 코딩을 구현해보시오

<main.cpp>

#include <opencv2/opencv.hpp>

extern void test_4();

int main()
{
	test_4();
}

<test_4.cpp>

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

void test_4()
{
    // 이미지 파일을 읽어옵니다.
    cv::Mat img = cv::imread("lenna.bmp");

    if (img.empty()) return;

    cv::Size imgsize = img.size();
    int imgtype = img.type();

    cv::Mat dst(imgsize, imgtype);

    cv::TickMeter tick;
    tick.start();
    img.copyTo(dst);
    tick.stop();

    std::cout << "걸린 시간 : " << tick.getTimeSec() << "초" << std::endl;

    cv::imshow("COPY", dst);
    cv::waitKey();
    cv::destroyAllWindows();
}

<compile 결과>

'OpenCV' 카테고리의 다른 글

Chapter 15 : 머신 러닝  (0) 2023.09.18
Chapter 11 : 이진화와 모폴로지  (0) 2023.09.18
Chapter 10 : 컬러 영상 처리  (0) 2023.09.18
Chapter 9 : 에지 검출과 응용  (0) 2023.09.18
Chapter 8 : 영상의 기하학적 변환  (0) 2023.09.18