일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Pointer
- Binary
- mfc
- Contour
- compare
- memory
- UNO
- parameter
- SERIAL
- preprocessing
- inheritance
- Class
- APP
- Overloading
- public
- Barcode
- Android
- Unity
- stream
- file access
- atmega328
- Read
- flutter
- digitalRead
- aduino
- length
- java
- wpf
- sensor
- Encapusulation
- Today
- Total
목록머신 비전 (64)
폴크(FOLC)

# 디지털 이미지 처리 # 이미지의 상태 변경이 가능하다. > 이진화, 거리, 적분, 채우기 등에 대한 처리 # 이미지 처리 - OpenCV 4.5.3 으로 테스트 # 이미지의 상태 정보를 이용해서 데이터를 변형 > srcImage : 입력, dstImage : 결과, thresh: 경계값, max_val : 최대값(대체값), type : 이진화 방법 > adaptiveMethod : 평균 , C : 옵셋, seedPoint : 기준위치, scale : 배율 # Cv2.Threshold > 이미지의 상태 변경 - 경계값을 직접 정의하여 이진화 > double thresh = 128.0, max_val = 255.0; > ThresholdTypes type = ThresholdTypes.Binary; > ..

# 눈으로 보는 실제 공간 3차원 정보(XYZ)를 가상 공간 2차원 정보(XY-이미지)로 표현하는데 필요한 파라미터를 찾는 과정 # 실제 공간 3차원 정보의 특별한 1Point -> 가상 공간 2차원 정보의 특별한 1Point 로 맵핑된다. # 위와 같은 과정중에는 많은 오차들이 존재 ( 사용 렌즈, 렌즈와 센서 사이 거리, 렌즈와 이미지 센서 사이 각 등등...) # 3차원 정보를 2차원 정보와의 맵핑을 위해 이용되는 파라미터를 크게 2가지로 분리 한다. # 카메라 내부 파라미터 : 초점 거리, 주점, 비대칭 계수 > 상수값 형태로 표현 가능 # 카메라 외부 파라미터 : 카메라 좌표계, 공간상 좌표계 > 회전과 평행 이동으로 표현 가능 # 이미지 인헨스 - OpenCV 4.5.3 으로 테스트 # 3차원..

# 디지털 이미지 처리 # 이미지 형태의 변경이 가능하다. > 늘리기, 줄이기, 회전, 이동, 기울임, 뒤틀림 등에 대한 처리 # 이미지 처리 - OpenCV 4.5.3 으로 테스트 # 이미지의 정보에서 특정한 위치의 정보를 이용해서 고정된 위치로의 맵핑 > srcImage : 입력, dstImage : 결과, dst_size : 결과 크기, offsetX : X 방향 이동, offsetY : Y 방향 이동 > interpolation : 보간법, borderMode : 이미지끝부분, angle : 기울기(deg), scale : 배율 # Cv2.Resize > 이미지 형태 변경 - 늘리기, 줄이기 > double offsetX = 0.0, offsetY = 0.0; > InterpolationFlags..

# 디지털 이미지 처리 # 이미지의 정보를 시간영역과 주파수영역으로 표현 가능하다. # 이미지를 처리하는 filter 의 특성에 따라서 시간영역/주파수 영역에서 처리 한다. > 저주파수( LPF : Low Pass Filter ), 고주파수( HPF : High Pass Filter ) # 이미지 처리 - OpenCV 4.5.3 으로 테스트 # 이미지의 정보에서 고주파수 성분은 통과 시키고 저주파수 성분은 제거 # kernel_size 를 X, Y 로 설정가능하며, 3 이상의 홀수를 선택 > srcImage : 입력, dstImage : 결과, kernel_size : 커널 크기, anchor_point : 엥커 위치, borderType : 이미지 끝부분 > ddepth : 입력 채널, Scale : ..

# Visual Studio 에서 NuGet 으로 dll 을 획득한다. # OpenCVSharp3 와 OpenCVSharp4.Windows 를 검색하여 설치 한다. > 4.x 버전을 랩핑한 dll 이다. > OpenCvSharp4.Windows ( Windows용 올인원 패키지(UWP 제외) ) > OpenCvSharp3-* 및 OpenCvSharp-*라는 패키지는 더 이상 사용되지 않습니다. > OpenCvSharp3-AnyCPU / OpenCvSharp3-WithoutDll / OpenCvSharp-AnyCPU / OpenCvSharp-WithoutDll # 설치가 정상적으로 진행되면 솔루션 탐색기 - 참조에 CSharp 관련 dll 이 표시된다. # 이미지를 표시하기 위한 PictureBox 를 이..

# OpenCV 웹 사이트에 접속한다. # Library - Release 를 선택한다. > MFC ( CPP ) 용 dll 을 확보한다. # 현재 상태에서 최신 버전을 선택한다. # exe 파일을 더블클릭으로 unzip 수행한다. # Visual Studio 버전에 맞도록 dll 과 lib 를 선택한다. > VS2017 : x64 - vc14, VS2019 : x64 - vc15 중에 선택 > bin 파일 : opencv_world453.dll, opencv_world453d.dll > lib 파일 : opencv_world453.lib, opencv_world453d.lib > include 폴더 > build - include 를 선택 opencv2 존재함.

# 디지털 컴퓨터를 이용하여 알고리즘을 통해 디지털 이미지(넓은 범위의 알고리즘을 입력 데이터)를 처리 한다. 특히, 노이즈 및 왜곡 축적과 같은 문제를 피할 수 있고 2차원 이상으로 정의되면서 다차원 시스템의 형태로 이용되고 있다. # 디지털 이미지 처리의 발전의 세 가지 요인 > 컴퓨터의 발전, 수학의 발전, 산업(환경, 농업, 군사) 및 의학 분야에 대한 수요 증가 # 디지털 이미지 처리 # 이미지의 정보를 시간영역과 주파수영역으로 표현 가능하다. # 이미지를 처리하는 filter 의 특성에 따라서 시간영역/주파수 영역에서 처리 한다. > 저주파수( LPF : Low Pass Filter ), 고주파수( HPF : High Pass Filter ) # 이미지 처리 - OpenCV 4.5.3 으로 테..

# 디지털 이미지 처리 # 이미지의 상태 정보에서 특별한 영역을 추출한다. > 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,..