opencv12 (opencv) Rectangle 간의 조작에 관해 cv:: findContours() 나 cv::connectedComponentsWithStats() 에 의한 오브젝트를 찾아서 rectangle로 표현하기도 한다.결함을 검출하는 시스템이라면 결함부분을 rectangle로 표시를 하는데 가까운 결함들은 통합하기도 하기때문에 도움이 되리라고 생각한다. 아래와 같이 두개의 cv::Rect 가 있을 경우, A B 가 교차하고 있는지 확인cv::Rect rectA = cv::Rect(50, 50, 100, 50); cv::Rect rectB = cv::Rect(200, 80, 70, 50); if ((rectA & rectB).area() > 0) // 붙어 있음 else // 떨어져 있음2. A B 를 통합cv::Rect rectAB = rect.. 2023. 11. 23. (opencv) pixel access time 샘플 Mat : 5000 x 3000 BGR Color All Black cv::Mat image = cv::Mat::zeros(cv::Size(5000, 3000),CV_8UC3); RGB 의 합을 계산 방법 1) at(y좌표, x좌표) int sum = 0; for (int i = 0; i < image.rows; i++) { for (int j = 0; j < image.cols; j++) { cv::Vec3b pixel = image.at(i, j); sum += pixel[2] + pixel[1] + pixel[0]; } } 방법 2) 선두 메모리 포인터 사용 int sum = 0; for (int i = 0; i < image.rows; i++) { const cv::Vec3b* ptr = i.. 2023. 8. 9. (opencv) Mat 의 기초 cv::Mat (cv 는 namespace를 의미하고 특별을 using namespace cv; 를 명시하지 않는 이상 지정을 해야 함) 2D (W x H) 이미지 정보를 보관하는 클래스 이미지 데이터는 힙메모리에 존재하고 cv::Mat 는 메모리 주소를 보관하게 된다. 이미지 메모리는 명시적으로 release() 멤버 함수를 이용하여 명시적으로 삭제 할 수 있으나 암시적으로 참조 카운트가 0 가 되었을 때 자동 삭제된다. 메모리 삭제 코드의 누락으로 이미지 메모리가 좀비로 될 가능성이 없다. 기본적으로 메모리상 이미지 색상의 저장 순서는 B G R 순이다. (관습상 BMP 포멧 배열이기 때문) type() 1 픽셀의 내부 구성요소를 의미한다. 여러 타입이 있지만 이미지 처리에선 아래 2가지만 생각하자... 2023. 8. 5. (opencv) 환경설정 최근엔 deep learning의 영향으로 python에서 opencv활용이 많아지고 있고 사용법의 설명 사이트도 많이 있지만 Windows Visual Studio에서 개발을 주로 해 왔던 개발자로서 Windows환경을 중심으로 설명을 해 나가겠다. header, lib, dll 파일 입수 정식으로는 소스를 다운로드 해서 옵션을 지정한 후 CMAKE Visual Studio를 이용하여 직접 컴파일을 해야 한다. 하지만 귀찮고 처음하시는 분은 어렵기 때문에 아래사이트에서 미리 컴파일된 파일들을 다운로드해서 사용하자. https://github.com/shimat/opencv_files_420/tree/master Code -> Download ZIP 로 다운로드 한 후 uwp-x64(Windows 64b.. 2023. 8. 5. 이전 1 2 3 다음