목록분류 전체보기 (170)
관심쟁이 영호

안녕하세요! 관심쟁이 영호입니다. 오늘은 컬러공간을 변경해볼건데요! 살펴보시죠! 컬러공간? 컬러공간은 다른 말로 컬러 표현 시스템, 컬러모델로도 표현이 된다고 합니다! 이러한 컬러공간은 기기나 프로그램에 따라 다르게 표현이 됩니다! 그래서 수시로 컬러공간을 변경해주어야 하는 상황이 올 수 있어요. 컬러공간은 대표적으로 R(ed) G(reen) B(lue)가 있어요! 그리고 CMY, HSI, LAB, YUV 등등이 있습니다. 오늘은 RGB를 다른 공간으로 변경해볼 예정이에요. CMY CMY는 CYAN, MAGENTA, YELLOW로 나뉩니다. 그리고 HSI도 있는데요! 이것은 명도와 채도를 섞은것이라고 보시면 됩니다. 먼저 BGR을 CMY로 고쳐볼게요! C = 255 -R R = 255- C M = 255..

안녕하세요! 관심쟁이 영호입니다. 오늘은 히스토그램에 관해서 공부를 해볼 예정인데요! 한번 같이 살펴보시죠! 히스토그램이란? 도수 분표를 그래프로 나타낸 것입니다! 저희가 해볼 것은 이미지의 화소 값을 히스토그램으로 나타내 볼 겁니다! 관련 함수를 먼저 보겠습니다! 이름 인수 인수 내용 calcHist(Mat images, int nimages, int** channels, Array mask, Array hist, int dims, int* histSize, float** ranges, bool uniform, bool accumulate) images 원본 영상배열 nimages 원본 영상의 개수 channels 히스토그램 계산에 사용되는 차원 목록 mask 특정영역만 계산하기 위한 마스크 행렬 hi..

안녕하세요! 관심쟁이 영호입니다. 영상을 다루려면 기본적으로 화소에 접근하고 해당 그 값을 수정하거나 새로 만들 수 있어야 합니다! 그것을 이용하기 위해서는 화소 처리방법을 알아야 하는데요! 관련된 것들을 공부해보겠습니다! 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() 모든 함수를 보고 한 번에 코드를 살펴볼게..

안녕하세요! 관심쟁이 영호입니다. 오늘은 Vector클래스, Range클래스, Mat클래스의 기타 메서드에 관해서 공부할 예정이에요! 1. Vector클래스 배열과 같다고 생각하시면 됩니다! 바로 살펴볼게요! vector(원소의 개수, 각 원소에 할당하는 값) insert(삽입할 위치, 삽입할 값) erase(삭제할 원소의 위치) capacity() 벡터에 할당된 공간의 크기반환 size() 벡터내 원소의 개수 반환 begin() 벡터의 첫 번째 원소를 가리키는 반복자 반환 end() 벡터의 마지막 원소를 가리키는 반복자 반환 push_back() 마지막에 원소 추가 pop_back() 마지막 원소 제거 reverse() 벡터의 원소를 저장할 공간 예약 이렇게 있네요!! 저것을 그냥 배열 쓰듯이 사용하시..

안녕하세요! 관심쟁이 영호입니다. 오늘은 Mat행렬의 크기변경과 복사 그리고 Vector클래스에 대해서 공부를 해볼게요! 1. Mat 크기변경 함수 먼저 살펴보고 갈게요! resize() 행의 개수를 기준으로 기존 행렬의 크기를 변경한다. 기존 행렬의 행의 개수 보다 sz가 작으면 하단 행을 제거하고, 크면 기존 행렬 하단에 행을 추가한다. resize(변경할 행의 개수, 추가되는 행의 원소에 할당하는 스칼라 값); 스칼라값을 안넣어줘도 됩니다! reshape() 행렬의 전체 원소 개수는 바뀌지 않으면서, 행렬의 모양을 변경하여 새 행렬을 반환한다. 기존 행렬과 변경된 행렬의 전체 원소 개수가 일치하지 않으면 에러가 발생한다. reshape(변경될 채널 개수, 변경될 행의 개수) create() 기존에 ..

안녕하세요! 관심쟁이 영호입니다. 오늘 공부할 주제는! 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..