상위 목록: 하위 목록: 작성 날짜: 읽는 데 6 분 소요

자르기

영상이나 이미지의 원하는 부분만 자를 수 있습니다.

이미지를 자르는 것을 관심 영역 지정 또는 하위 행렬 생성이라 부릅니다.

특정 영역에 대해서 작업하기 때문에 관심 영역이라 부르며, 이미지는 행렬이므로 특정 부분을 잘라내기 때문에 하위 행렬이라 부릅니다.



메인 코드

using System;
using OpenCvSharp;

namespace Project
{
    class Program
    {
        static void Main(string[] args)
        {
            Mat src = new Mat("transport.jpg");
            Mat dst = src.SubMat(new Rect(300, 300, 500, 300));

            Cv2.ImShow("src", src);
            Cv2.ImShow("dst", dst);
            Cv2.WaitKey(0);
        }
    }
}


세부 코드

Mat src = new Mat("transport.jpg");
Mat dst = src.SubMat(new Rect(300, 300, 500, 300));

new Mat을 사용해 이미지를 src에 할당합니다.

dstsrc에서 하위 행렬을 생성합니다.


src.SubMat(new Rect(300, 300, 500, 300));

하위 행렬 메서드(*.SubMat)를 활용해 하위 행렬을 생성합니다.

*.SubMat()Range 구조체, Rect 구조체, int 할당 등을 통해 생성할 수 있습니다.

  • Tip : 예제의 방식은 int 방식을 활용합니다.



다른 방식으로 자르기

Mat roi1 = new Mat(src, new Rect(300, 300, 100, 100));
Mat roi2 = src[0, 100, 0, 100];

다른 방법으로는 Mat 클래스를 생성해서 영역을 복사하는 방법과 영역 설정 방법이 있습니다.

모두 동일하게 영역을 잘라내며, 하위 행렬 메서드와 마찬가지로 Range 구조체, Rect 구조체, int 할당 등을 통해 생성할 수 있습니다.



출력 결과

댓글 남기기