C# OpenCV 강좌 : 제 10강 - 자르기

C# OpenCV4 Slice

C# OpenCV 강좌 : 제 10강 - 자르기
[ C#-OpenCvSharp4 ] - 윤대희

크기 조절


1

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

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

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



Main Code


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);
        }
    }
}



Detailed Code


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 할당 등을 통해 생성할 수 있습니다.



Result


2


도움이 되셨다면 광고 클릭 부탁드립니다.


Book Image

책이 출간되었습니다!

C#과 파이썬을 활용한 OpenCV 4 프로그래밍

컴퓨터 비전 기초 이론부터 머신러닝을 활용한 영상 처리 프로젝트까지

  • C# OpenCvSharp4
  • Python OpenCV4
  • Using Tesseract
  • Using TensorFlow
  • Using Regular Expression
  • 윤대희 저 | 위키북스

    [yes24 바로가기] [알라딘 바로가기] [교보문고 바로가기]


    ⤧  Previous post C# OpenCV 강좌 : 제 9강 - 크키 조절 ⤧  Next post C# OpenCV 강좌 : 제 11강 - 이진화
    C#-OpenCvSharp4 Category