OpenCV/OpenCV C++(8)
-
C++ OpenCV OMR인식
OMR 이란? OMR (Optical Mark Recognition)은 광학 마크 인식의 약자. 사람이 표시 한 문서 를 자동으로 분석하고그 결과를 해석 하는 프로세스입니다. OMR 검출을 위한 7단계 1. OMR 시험지가 있는 이미지에서 시험지 검출을 위한 이미지처리 - 이미지 읽기, gray, 흐리게, edge 검출 2. OMR 시험지 사각형 검출 및 이미지 처리 - 원근변환 3. 채점을 위한 다각형(원) 검출 이미지처리 - 이진화, 다각형검출 4. 검출된 다각형(원)을 채점하기 위해 정렬 - sort 5. 어떤 다각형(원)이 채워졌는지 검출 6. 검출된 답과 정답을 표시 및 비교 - 정답은 녹색, 검출된 답은 빨간색 7. 채점결과를 화면에 표시 출처 https://namu.wiki/w/OMR htt..
2021.02.03 -
C++ OpenCV QRcode scanner
QRCodeDetector를 이용한 QRcode scanner 실행코드 #include "opencv2/opencv.hpp" #include using namespace cv; using namespace std; int main(void) { QRCodeDetector detector; Mat frame, gray; frame = imread("qr1.jpg"); if (frame.empty()) { cerr
2021.01.26 -
C++ OpenCV Labeling
이미지 자르기 gray 이진화 라벨링 크기 제한 설정 실습코드 #include #include using namespace cv; using namespace std; int main(int ac, char** av) { Mat img = imread("keyboard.png"); Mat img_resize = img(Range(300, 1200), Range(300, 1200)); //이미지 자르기 Mat img_gray; cvtColor(img_resize, img_gray, COLOR_BGR2GRAY); //gray Mat img_threshold; threshold(img_gray, img_threshold, 100, 255, THRESH_BINARY_INV); //이진화 Mat img_label..
2021.01.20 -
C++ OpenCV Transformation
1. 이미지 확대 & 축소 실행코드 #include "iostream" #include "opencv2/imgproc.hpp" #include "opencv2/imgcodecs.hpp" #include "opencv2/highgui.hpp" using namespace std; using namespace cv; int main(int argc, char** argv) { //Mat src = imread("Lenna.png"); Mat src = imread("cloud.jpg"); Mat dst; Mat dst2; pyrUp(src, dst, Size(src.cols * 2, src.rows * 2)); pyrDown(src, dst2, Size(src.cols / 2, src.rows / 2)); ..
2021.01.18 -
C++ OpenCV Segmentation and Labelging
1. image Segmentation 이미지 선명화를 위해 filter2D 사용 이진 이미지의 파생 표현을 얻기 위해 distanceTransform 사용 OpenCV 함수 cv :: watershed 를 사용하여 이미지의 개체를 배경에서 분리 실습 코드 #include #include #include #include using namespace std; using namespace cv; int main(int argc, char* argv[]) { // Load the image Mat src = imread("coin.jpg"); if (src.empty()) { cout
2021.01.11 -
C++ OpenCV 컬러 흑백 이미지 Histogram(히스토그램)
1. 흑백 이미지 히스토그램 히스토그램은 이미지의 밝기 값이 0~255 까지 있을 때, 픽셀들이 얼마나 그 값들으 갖고 있는지 나타내주는 그래프 이다. OpenCV에서는 이미지의 히스토그램 계산이 쉽도록 함수 calcHist()를 제공한다. void cv::calcHist(const Mat* images, // Histogram을 계산할 이미지들에 대한 배열이다. int nimages, // images 배열에 포함된 이미지의 개수이다. const int* channels, //Histogram을 계산할 채널 번호들의 배열이다. InputArray mask, //Histogram을 계산할 영역을 지정할 수 있다. OutputArray hist, //Histogram 계산결과를 저장한다. int dims,..
2021.01.08