일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- flutter
- Contour
- UNO
- Unity
- inheritance
- java
- Barcode
- sensor
- digitalRead
- length
- public
- Binary
- stream
- wpf
- mfc
- preprocessing
- file access
- Encapusulation
- APP
- compare
- memory
- Class
- Read
- aduino
- SERIAL
- Android
- atmega328
- parameter
- Pointer
- Overloading
- Today
- Total
목록머신 비전/머신 비전 알고리즘 테크닉 CPP (35)
폴크(FOLC)
# 디지털 이미지 처리 # 이미지의 상태 정보에서 특별한 영역을 추출한다. > haarcascade 로 처리 # 이미지 처리 - OpenCV 4.5.3 으로 테스트 # 이미지의 상태 정보에서 특별한 영역을 추출 > srcImage : 입력, dstImage : 결과, faces, eyes: 결과 정보 # cv::CascadeClassifier > cv::String face_cascade_name = "haarcascades\\haarcascade_frontalface_alt.xml"; > cv::String eyes_cascade_name = "haarcascades\\haarcascade_eye_tree_eyeglasses.xml"; > cv::CascadeClassifier face_cascade;..
# 디지털 이미지 처리 # 이미지의 상태 정보에서 특별한 영역을 추출한다. > blob 으로 처리 # 이미지 처리 - OpenCV 4.5.3 으로 테스트 # 이미지의 상태 정보에서 특별한 영역을 추출 > srcImage : 입력, contours : 결과, minAreaRect : 결과 정보 # cv::findContours > double thresh = 128.0, max_val = 255.0; > int type = cv::THRESH_BINARY; > cv::threshold(srcImage, dstImage, thresh, max_val, type); > int mode = cv::RETR_TREE, method = cv::CHAIN_APPROX_NONE; > vector contours; > ..
# 디지털 이미지 처리 # 이미지의 상태 정보에서 특별한 정보를 생성한다. > 추출된 정보를 일반화한다. # 이미지 처리 - OpenCV 4.5.3 으로 테스트 # 이미지의 상태 정보에서 특별한 정보를 생성 - 거리 계산 > src : 입력, dst : 결과 # cv::norm > vector Points1, Points2; > cv::Vec4f line1, line2; > int distType = cv::DIST_L2; > double param = 0.0, double reps = 0.01, double aeps = 0.01; > cv::fitLine(cv::Mat(Points1), line1, distType, param, reps, aeps); > cv::fitLine(cv::Mat(Points..
# 디지털 이미지 처리 # 이미지의 상태 정보에서 특별한 정보를 생성한다. > 추출된 정보를 일반화한다. # 이미지 처리 - OpenCV 4.5.3 으로 테스트 # 이미지의 상태 정보에서 특별한 정보를 생성 > Points : 입력, model : 결과, distance : 노이즈로 판단하는 경계값 # MA( Moving Average ) > cv::Point2d *pSrc = new cv::Point2d[1000]; > cv::Point2d *pDst = new cv::Point2d[1000]; > CMovingAverage MA; > MA.SmoothFilter(pSrc, pDst, 1000); * 소스 코드 세부 내용 * void CMovingAverage::SmoothFilter(cv::Point..
# 디지털 이미지 처리 # 이미지의 상태 정보에서 일반적인 정보를 생성한다. > 추출된 정보를 일반화한다. # 이미지 처리 - OpenCV 4.5.3 으로 테스트 # 이미지의 상태 정보에서 일반적인 정보를 생성 > Points : 입력, model : 결과, distance : 노이즈로 판단하는 경계값 # RANSAC ( Random sample consensus ) > vector vecData; > CFitLineRANSAC ransac; > cv::Vec4f model; > ransac.FitLine(vecData, 3.0, model); * 소스 코드 세부 내용 * double CFitLineRANSAC::FitLine(const vector &src, double distance_threshol..
# 디지털 이미지 처리 # 이미지의 상태 정보에서 특별한 정보를 제거한다 > 특별한 주파수 성분을 제거한다. # 이미지 처리 - OpenCV 4.5.3 으로 테스트 # 이미지의 상태 정보에서 특별한 정보를 제거 > srcImage : 입력, dstImage : 결과 # cv::dft, cv::idft > cv::Mat padded, complexI; > const int m = cv::getOptimalDFTSize(srcImage.rows); > const int n = cv::getOptimalDFTSize(srcImage.cols); > cv::copyMakeBorder(srcImage, padded, 0, m - srcImage.rows, 0, n - srcImage.cols, cv::BORDER..
# 디지털 이미지 처리 # 이미지 상태 정보에서 배경을 제거하고 전경을 추출한다. > 이미지 정보에서 배경을 제거하고 전경 추출 # 이미지 처리 - OpenCV 4.5.3 으로 테스트 # 이미지 상태 정보에서 배경을 제거하고 전경을 추출 > srcImage : 입력, dstImage : 결과 # cv::createBackgroundSubtractorKNN > cv::Ptr pBackSubKNN = cv::createBackgroundSubtractorKNN(); > pBackSubKNN->apply(srcImage, dstImage); # cv::createBackgroundSubtractorMOG2 > cv::Ptr pBackSubMOG2 = cv::createBackgroundSubtractorMOG..
# 디지털 이미지 처리 # 이미지 상태 정보에서 특별한 내용을 추출한다. > 이미지 정보에서 특별한 내용 추출 # 이미지 처리 - OpenCV 4.5.3 으로 테스트 # 이미지 상태 정보에서 특별한 내용을 추출 > srcImage : 입력, decode : 결과 # cv::QRCodeDetector > cv::QRCodeDetector detector; > vector points; > if (detector.detect(srcImage, points) == true) > { > cv::String info = detector.decode(srcImage, points); > }
# 디지털 이미지 처리 # 이미지 상태 정보의 시인성을 높여주도록 복원한다. > 이미지 정보의 시인성을 복원 # 이미지 처리 - OpenCV 4.5.3 으로 테스트 # 이미지 상태 정보의 시인성을 높여주도록 복원 > srcImage : 입력, dstImage : 결과, Merge : HDR 정보 생성 # cv::MergeDebevec > vector images; // exposure time image > vector times; // exposure time value > cv::Mat response; > cv::Ptr calibrate_debevec = cv::createCalibrateDebevec(); > calibrate_debevec->process(images, response, time..
# 디지털 이미지 처리 # 이미지 상태 정보의 시인성을 높여주도록 복원한다. > 이미지 정보의 시인성을 복원 # 이미지 처리 - OpenCV 4.5.3 으로 테스트 # 이미지 상태 정보의 시인성을 높여주도록 복원 > srcImage : 입력, dstImage : 결과, Calibrate : 카메라 반응 복원 # cv::CalibrateDebevec > vector images; // exposure time image > vector times; // exposure time value > cv::Mat response; > cv::Ptr calibrate_debevec = cv::createCalibrateDebevec(); > calibrate_debevec->process(images, respon..
# 디지털 이미지 처리 # 이미지 상태 정보의 시인성을 높여주도록 복원한다. > 이미지 정보의 시인성을 복원 # 이미지 처리 - OpenCV 4.5.3 으로 테스트 # 이미지 상태 정보의 시인성을 높여주도록 복원 > srcImage : 입력, dstImage : 결과, Tonemap : HDR -> LDR 로 매핑 # cv::Tonemap > vector images; // exposure time image > vector times; // exposure time value > cv::Ptr tonemap = cv::createTonemap(2.2f); > tonemap->process(hdrImage, dstImage); # cv::TonemapDrago > vector images; // expo..
# 디지털 이미지 처리 # 이미지 상태 정보의 시인성을 높여주도록 복원한다. > 이미지 정보의 시인성을 복원 # 이미지 처리 - OpenCV 4.5.3 으로 테스트 # 이미지 상태 정보의 시인성을 높여주도록 복원 > srcImage : 입력, dstImage : 결과, calbrateDebevec : 카메라 응답 예측, MergeDebevec : HDR 생성 > Tonemap : HDR -> LDR 로 매핑 # cv::AlignMTB, CalibrateDebevec, createMergeDebevec, createTonemap > vector images; // exposure time image > vector times; // exposure time value > cv::Ptr alignMTB = ..
# 디지털 이미지 처리 # 이미지의 상태 정보에서 특별한 영역을 복원한다. > 이미지 정보에서 특별한 영역 복원 # 이미지 처리 - OpenCV 4.5.3 으로 테스트 # 이미지의 상태 정보에서 특별한 영역을 복원 > srcImage : 입력, dstImage : 결과, templateWindowSize : 복원 반경, searchWindowSize : 검색크기 > h : 필터 강도, hColor : 색상 구성 # cv::fastNlMeansDenoising > float h = 3.f; > int templateWindowSize = 7, searchWindowSize = 21; > cv::fastNlMeansDenoising(srcImage, dstImage, h, templateWindowSize,..
# 디지털 이미지 처리 # 이미지의 상태 정보에서 특별한 영역을 복원한다. > 이미지 정보에서 특별한 영역 복원 # 이미지 처리 - OpenCV 4.5.3 으로 테스트 # 이미지의 상태 정보에서 특별한 영역을 복원 > srcImage : 입력, mskImage : 마스크, inpaintRadius : 복원 반경, flags : 알고리즘 > dstImage : 결과 # cv::inpaint > cv::Mat mskImage; > double inpaintRadius = 3.0; > int flags = cv::INPAINT_NS; > cv::inpaint(srcImage, mskImage, dstImage, inpaintRadius, flags);
# 디지털 이미지 처리 # 이미지의 상태 정보에서 특징점을 매칭한다. > 이미지 정보에서 특징점을 매칭 # 이미지 처리 - OpenCV 4.5.3 으로 테스트 # 이미지의 상태 정보에서 특징점을 매칭 > srcImage : 입력, keypoints : 특징점, k : 가장 가까운 세트 개수, crossCheck : 서로 확인 > maxDistance : 최대 거리 # Feature Detector - SIFT, BRISK, ORB, MSER, FFD, AFD, SBD, KAZE, AKAZE... > cv::Mat srcImage1, srcImage2; > vector kpts1, kpts2; > cv::Mat desc1, desc2; > cv::Ptr orb_detector = cv::ORB::creat..
# 디지털 이미지 처리 # 이미지의 상태 정보에서 특징점을 추출한다. > 이미지 정보에서 특징점을 추출 # 이미지 처리 - OpenCV 4.5.3 으로 테스트 # 이미지의 상태 정보에서 특징점을 추출 > srcImage : 입력, keypoints : 특징점 # cv::SIFT - 특허 > vector keypoints; > cv::Ptr sift_detector = cv::SIFT::create(500); > sift_detector->detect(srcImage, keypoints); # cv::BRISK > cv::Ptr brisk_detector = cv::BRISK::create(500); > brisk_detector->detect(srcImage, keypoints); # cv::ORB > ..
# 디지털 이미지 처리 # 이미지의 상태 정보에서 코너 특징점을 추출한다. > 이미지 정보에서 코너 특징점을 추출 [ Harris-Stephens, Shi-Tomasi ] # 이미지 처리 - OpenCV 4.5.3 으로 테스트 # 이미지의 상태 정보에서 코너 특징점을 추출 > srcImage : 입력, blockSize : 영역크기, ksize : 커널크기, QualityLevel : 정확도 > minDistance : 최소거리, k : 하리스코너 자유 매개변수 # cv::cornerHarris > int blockSize = 2, ksize = 3, int borderType = cv::BORDER_DEFAULT; > double k = 0.05; > cv::cornerHarris(srcImage, d..
# 디지털 이미지 처리 # 이미지의 상태 정보에서 동일한 특별한 영역를 추출한다. > 이미지 색상의 정보를 이용해서 동일한 영역 추출 # 이미지 처리 - OpenCV 4.5.3 으로 테스트 # 이미지의 상태 정보에서 동일한 특별한 영역를 추출 > srcImage : 입력, mskImage : 마스크, thresh1 : 경계값, L2gradient : 기울기 # cv::canny > double thresh1 = 128.0, thresh2 = 228.0; > int L2gradient = false; > cv::Canny(srcImage, dstImage, thresh1, thresh2, L2gradient); # cv::LineSegmentDetector > cv::Ptr det = cv::createL..
# 디지털 이미지 처리 # 이미지의 상태 정보에서 동일한 특별한 영역를 추출한다. > 이미지 색상의 정보를 이용해서 동일한 영역 추출 # 이미지 처리 - OpenCV 4.5.3 으로 테스트 # 이미지의 상태 정보에서 동일한 특별한 영역를 추출 > srcImage : 입력, mskImage : 마스크, rtROI : 관심영역, bgModel : 배경, fgModel : 전경 > iter : 반복 횟수 # cv::segmentation::IntelligentScissorsMB > cv::segmentation::IntelligentScissorsMB tool; > tool.setEdgeFeatureCannyParameters(16, 100).setGradientMagnitudeMaxLimit(200); > ..
# 디지털 이미지 처리 # 이미지의 상태 정보에서 특별한 영역를 검색한다. > 이미지 매칭을 통해서 영역 검색 # 이미지 처리 - OpenCV 4.5.3 으로 테스트 # 이미지의 상태 정보에서 특별한 영역을 검색 > srcImage : 입력, tmpImage : 매칭 이미지, dstImage : 결과, method : 검색 방법 # cv::matchTemplate > cv::Mat tmpImage; > int method = cv::TM_SQDIFF; > cv::matchTemplate(srcImage, tmpImage, dstImage, method, cv::noArray()); > cv::Point minLoc = cv::Point(), maxLoc = cv::Point(); > cv::minMaxL..