우리가 이미지 속 특정 영역만을 추출해야되는 경우가 있습니다.

 

 

차량 번호판 검출를 예로 들겠습니다.

 

 

이미지 전체 탐색

 

이미지 속 특정 영역 탐색

 

첫 번째 그림과 같이 영상 속에서 차량 번호판을 검출하기 위해선

여러 알고리즘을 이용하여 이미지 전체를 탐색해야 됩니다. 

 

 

만약 아파트 입구에 설치된 주차 차단바의 상황라 가정하고 차량이 카메라 영역 속 특정 위치에 멈춰야 한다면

 

이미지 전체를 탐색하지 않고 두 번째 그림과 같이 이미지 속 특정 영역을 탐색해여 차량 번호판을 검출할 수 있으며,

처리 속도는 전체를 탐색하는 것 보다 월등히 차이가 나게 되죠.

 

 

 

 

바로 코드를 통해 Range() 함수를 사용해보겠습니다.

 

* 본 코드는 Opencv 3.1.0 Version에서 사용하였습니다.

#include <opencv2/opencv.hpp>  

using namespace cv;
using namespace std;

int main(){
	
	Mat img = imread("D:\\티스토리\\range\\벚꽃.jpg"); // 1000x1000 이미지
	Mat rect_img;

         // 영역 좌표
	int y1 = 300;
	int y2 = 600;
	int x1 = 250;
	int x2 = 750;

	rect_img = img(Range(y1, y2), Range(x1, x2));

	imshow("원본 이미지", img);
	imshow("결과 이미지", rect_img);

	waitKey(0);
}

 

원본 이미지

 

이미지 영역 분할 과정

 

 

결과 이미지

 

 

 

< 정리글 >

 

오늘은 Range() 함수에 대해서 알아보았습니다.

 

이 함수만을 이해하고 사용하시는 데 큰 어려움은 없을거라 생각합니다.

 

영상처리를 이용한 프로젝트를 하시게 되면 상황에 맞는 사용 이유와 응용 방법에 대해

잘 이해하실 수 있을거라 생각합니다

 

 

 

* 겨울이 다 지나고 벚꽃의 계절이 찾아온거 같네요.   

 

  코로나가 잠잠해지고 있는 것처럼 느껴지지만 이럴 시기일 수록 더욱 조심해야되지 않을까 싶습니다.

 

  모두가 힘든 시기를 잘 견뎌내어 이 상황을 이겨내길 바랍니다.

 

  (위에 벚꽃 사진은 2년전 군항제에 가서 찍은 사진입니다.)

+ Recent posts