목록c++ (8)
관심쟁이 영호
안녕하세요. 관심쟁이 영호입니다! 오늘은 OpenCV를 공부해볼게요! 오늘은 영역처리 부분에서 회선과 블러링에 대해서 공부를 해볼게요. 영역처리란? 영상처리 작업을 하다보면 공간영역, 주파수 영역에 대한 표현을 자주 접할 수가 있어요! 말 그대로 공간, 주파수를 영역으로 나누어 처리를 하는 것입니다. 공간영역은 영상에서 다루어질 화소공간을 의미합니다! 이것을 더욱 세분화하면 화소점 하나하나의 개념이라기 보다는 화소가 모인 특정 범위의 화소 배열을 의미해요! 그리고 대부분 마스크 또는 윈도우라고 불리는 커널을 이용하여 회선을 수행합니다! 회선이란? 어떠한 마스크값을 영상영역에 전반적으로 곱하여 출력되는 값을 모든 출력화소값에 대해 이동하면서 수행하는 것을 하는 것을 말합니다. 이때, 이 마스크는 커널, 윈..
안녕하세요! 관심쟁이 영호입니다. 영상을 다루려면 기본적으로 화소에 접근하고 해당 그 값을 수정하거나 새로 만들 수 있어야 합니다! 그것을 이용하기 위해서는 화소 처리방법을 알아야 하는데요! 관련된 것들을 공부해보겠습니다! 1. at() at함수는 Mat행렬에 지정된 원소에 접근하는 템플릿 함수입니다! 그럼 살펴볼게요! at(int i, int j, int k,); at(Point pt) 여기서 i, j, k는 각각 0, 1, 2차원을 가리키는 배열 인덱스입니다! at함수는 타입을 꼭꼭 정해주어야 해요!! 예를 들면, mat1.at (i, j) 이렇게요! 여기서 만약 pt로 접근한다고 가정하면! Point pt(열, 행) 이렇게 접근해야 합니다! 2. ptr() 모든 함수를 보고 한 번에 코드를 살펴볼게..
안녕하세요! 관심쟁이 영호입니다. 오늘 공부할 주제는! OpenCV에 있는 RotatedRect클래스, Matx클래스입니다! 바로 보시죠! 1. RotatedRect Class RotatedRect클래스는 이전에 보았던 Rect클래스와 비슷하다고 보시면 됩니다! 먼저 생성자와 인수구조를 보시죠! RotatedRect(); RotatedRect(회전의 중심점, 사각형의 크기, 회전각도) 이렇게 이루어져 있네요! 조금만 생각해보면 최소로 필요한 것만 추가하면 되는거네요!! 그럼 코드를 살펴볼게요. #include using namespace cv; using namespace std; void main() { Mat image(300, 500, CV_8UC1, Scalar(255)); Point2f cent..
안녕하세요! 관심쟁이 영호입니다. 오늘은 OpenCV에서 사용되는 기본 행렬 연산 함수를 다룰 예정이에요! 이미지와 비디오는 기본적으로 행렬로 이루어져있으니 행렬 연산을 잘안다면 영상을 작업하는데 있어서 훨씬 유리하겠죠!! 그렇다고 달달 외워둘 필요는 없어요! 그냥 이런것이 있구나 정도말 알아두시고 필요하실때 구글링을 통해 찾아보시면 됩니다! 오늘 공부해볼 함수는요! 함수 이름 기능 또는 내용 -flip 입력된 2차원 배열을 수직, 수평, 양축으로 뒤집는다. -repeat 입력 배열의 반복된 복사본으로 출력배열을 채운다. -transpose 입력 행렬의 전치 행렬을 출력 인수로 반환한다. -merge 여러 개의 단일 채널 배열로 다중 채널의 배열을 합성한다. -split 다중 채널 배열을 여러개의 단일 ..
안녕하세요! 관심쟁이 영호입니다. 오늘은 OpenCV에 관해서 공부를 해볼 예정입니다! 바로 보시죠. 오늘의 주제는 이미지 파일, 영상파일을 읽어오는 겁니다. 영상처리에 있어서 가장 필수적인 부분이라고 생각하시면 됩니다! 1. 이미지 파일 이미지 파일은 앞서 우리가 공부했던 Mat타입의 행렬을 이용하면 아주 쉬워요! 2차 원창에 행렬로 된 데이터를 띄워주면 그것이 바로 이미지인데요! 실제 우리가 사용하는 jpg, png 이런 값들도 18 12 15 16 19 13 89 88 89 12 10 87 67 88 33 23 92 86 88 21 13 13 16 21 14
안녕하세요! 관심쟁이 영호입니다. 건강한 하루를 보내고 계신가요!? 오늘은 OpenCV의 트랙바, 그리기 함수를 공부할 예정이에요! 트랙바란? 우리가 브라우저를 사용하면서 오른쪽에 있는 "스크롤바"와 비슷하다고 생각하면 됩니다! 윈도우 제어 창에 바를 생성하여 값을 받아내는 것인데요! 이 바가 이동됨에 따라 다른 값을 리턴하게 되고, 거기에 해당하는 모종의 코드를 추가시키면 창에 적용된 행렬의 값이나 다른 값들을 제어할 수 있게됩니다! 사용방법은? 트랙바는 이전에 사용했던 마우스콜백 함수와 비슷합니다. 1. 똑같이 콜백함수를 등록한다. 2. 윈도우창을 만들고 트랙바를 생성한다. 3. 트랙바생성하면서 함수를 넘겨준다. 4. 트랙바의 값을 받을 함수를 코딩한다. 이 정도가 되겠네요! 바로 코드를 살펴보겠습니..