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

   

자르기(Slice)


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


원본(Source, src)를 영상이나 이미지를 사용하면 됩니다.

영상 사용하기 : 3강 바로가기
이미지 사용하기 : 4강 바로가기


Class


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using OpenCvSharp;

namespace test
{
    class OpenCV : IDisposable
    {
        IplImage slice;
            
        public IplImage Slice(IplImage src)
        {
            slice = new IplImage(Cv.Size(165, 35), BitDepth.U8, 3);
            Cv.SetImageROI(src, new CvRect(240, 280, slice.Width, slice.Height));
            Cv.Resize(src, slice);
            Cv.ResetImageROI(src);
            return slice;
        }
            
        public void Dispose()
        {
            if (slice != null) Cv.ReleaseImage(slice);
        }
    }
}                    


Class Code


public IplImage Slice(IplImage src)
{
    ...
}

Slice에서 영상을 원하는 부분을 자르게 됩니다.

slice = new IplImage(Cv.Size(165, 35), BitDepth.U8, 3);

slice에 메모리 확보를 위하여 선언합니다. IplImage(크기, 정밀도, 채널)을 입력합니다. 단색일 경우 채널은 1이며, 다색일 경우 채널은 3입니다.

  • Tip : Cv.Size()를 이용하여 자를 부분의 크기를 설정합니다.
Cv.SetImageROI(src, new CvRect(240, 280, slice.Width, slice.Height));
Cv.Resize(src, slice);
Cv.ResetImageROI(src);

Cv.SetImageROI()을 이용하여 자를 부분을 설정합니다. Cv.SetImageROI(소스, new CvRect(x좌표 시작점, y좌표 시작점, 넓이, 높이))를 의미합니다.

  • Tip : 좌표는 왼측 상단이 (0, 0)이며 우측 하단이 (max, max)입니다. 보통 사용하는 좌표계와 약간 다르니 주의하시기 바랍니다. 시작점에서 우측방향과 하단 방향으로 도착점이 됩니다.

Cv.Reisze()를 이용하여 slice에 잘라진 src를 넣어줍니다. 크기는 같기 때문에 보간할 필요가 없습니다.

Cv.ResetImageROI(src)를 이용하여 잘라진 src초기 상태의 src로 변경합니다.

  • Tip : 잘라진 src를 반환하여 사용하여도 되는데, 이렇게 하지 않는 이유는 부가적인 작업을 추가적으로 할 때, 원본 src를 사용하게 되면 잘라진 src를 사용하기 때문에 원본으로 작업하였으면 초기화시켜주어야합니다.


그래픽스 알아보기 : 6강 바로가기


Main Code


using (OpenCV Convert = new OpenCV())
{
    pictureBoxIpl2.ImageIpl = Convert.Slice(src);
}

Slice(240, 280) ~ (405, 315)까지의 이미지를 표시합니다.


Result



원본

1


(240, 280) ~ (405, 315)

2



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

⤧  Next post C# OpenCV 강좌 : 제 10강 - 그레이스케일 ⤧  Previous post C# OpenCV 강좌 : 제 8강 - 크기 조절