우리가 이미지 속 특정 영역만을 추출해야되는 경우가 있습니다.
차량 번호판 검출를 예로 들겠습니다.
첫 번째 그림과 같이 영상 속에서 차량 번호판을 검출하기 위해선
여러 알고리즘을 이용하여 이미지 전체를 탐색해야 됩니다.
만약 아파트 입구에 설치된 주차 차단바의 상황라 가정하고 차량이 카메라 영역 속 특정 위치에 멈춰야 한다면
이미지 전체를 탐색하지 않고 두 번째 그림과 같이 이미지 속 특정 영역을 탐색해여 차량 번호판을 검출할 수 있으며,
처리 속도는 전체를 탐색하는 것 보다 월등히 차이가 나게 되죠.
바로 코드를 통해 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년전 군항제에 가서 찍은 사진입니다.)
'OpenCV' 카테고리의 다른 글
[Opencv] 이진화 라벨링 (0) | 2020.04.09 |
---|---|
[Opencv] 이미지 파일에 텍스트 숨기기 - 스테가노그래피 (0) | 2020.04.03 |
[Opencv] 이미지 픽셀 접근 (0) | 2020.03.29 |
[Opencv] 여러 장의 이미지 처리 glob() (0) | 2020.03.27 |
[Opencv] 히스토그램을 이용한 숫자 인식 (0) | 2020.03.22 |