OpenCV "이미지 잘라내고 사각형을 씁니다"

이미지 잘라내기



취미로 OpenCV를 이용하는 사람이나 연구에서 OpenCV를 이용하는 사람, 둘 다 이미지 잘라내기를 사용한다고 생각할 때는 있을 것입니다. 이미지를 잘라내는 것은 매우 간단하지만 좌표를 찾지 않으면 어디를 자르고 싶은지 모릅니다. 좌표를 구하는 방법은 다음에 하기 때문에, 여기에서는 단순한 잘라내기의 소개.

Mark5 이미지 잘라내기


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

#if _DEBUG
#pragma comment(lib,"opencv_world430d.lib")
#else
#pragma comment(lib,"opencv_world430.lib")
#endif

using namespace cv; 
using namespace std;

int main(void) {


    Mat img = imread("C:\\opencv\\sources\\samples\\data\\lena.jpg");

    img = Mat(img, Rect(150, 200, 200, 140));                                                           


    imshow("View", img);

    waitKey();

    return 0;

}


이렇게 나오면 OK입니다.


해설①

이번에 추가된 것은 이것입니다.
img = Mat(img, Rect(150, 200, 200, 140));

이러한 인수는
出力画像 = Mat(入力画像, Rect(x座標, y座標, 横幅(width), 縦幅(height)));

의미가 있습니다.

해설②

좌표는 이미지 도구라도 볼 수 있다고 생각합니다.

Mark6 이미지에 사각형을 씁니다.


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

#if _DEBUG
#pragma comment(lib,"opencv_world430d.lib")
#else
#pragma comment(lib,"opencv_world430.lib")
#endif

using namespace cv; 
using namespace std;

int main(void) {


    Mat img = imread("C:\\opencv\\sources\\samples\\data\\lena.jpg");

    rectangle(img, Point(0, 295), Point(180, 430),Scalar(255, 0, 0), 5);                    


    imshow("View", img);

    waitKey();

    return 0;

}



이렇게 나오면 OK입니다.


해설①

이번에 추가된 것은 이것입니다.
rectangle(img, Point(0, 295), Point(180, 430),Scalar(255, 0, 0), 5);

rectangle의 인수는
rectangle(入出力画像, Point(長方形の左上の座標), Point(長方形の右下の座標),Scalar(BGRカラー指定), 線の太さ);

해설②

더 이상 설명하지 마라 ...
rectangle은 두 개의 좌표 점이 필요하므로 조심합시다. Rect도 두 좌표에서 잘라낼 수 있으므로 시도해보십시오. 이러한 직사각형을 바운딩 박스라고도하는 것 같습니다. 자세하게 알고 싶은 사람은 바운딩 박스로 검색해 봐도 좋을지도.

마지막으로



어느 쪽도 화상을 취급할 때에는 반드시 만나는 것이라고 생각합니다. 한 번 시도해 보면 어떨까요?
최근, 악마 0의 칼날을 보러 갔습니다. 멋지고 텐션 아게아게입니다. 「OpenCV의 호흡 이노형 rectangle」 꼭 사용해 보세요.

좋은 웹페이지 즐겨찾기