WPF OpenCV 프로젝트 #33: Image Pyramid (Gaussian & Laplacian)

ImagePyramid

Image Pyramid (이미지 피라미드)를 주제로 Gaussian Pyramid (가우시안 피라미드)와 Laplacian Pylamid (라플라시안 피라미드)에 대해 OpenCvSharp에서 제공하는 함수들을 이용해서 순차적으로 간단히 개념을 정리하고, WPF OpenCV 프로젝트에 구현해 보겠습니다.이전 포스팅(#32)에서는 Morphology (모폴로지: 형태학)를 주제로 Erosion (침식), Dilation (팽창), Opening (열림), Closing (닫힘), Gradiant (그레디언트), Top-Hat, Black-Hat 에 대해 OpenCvSharp에서 제공하는 함수들을 이용해서 한꺼번에 순차적으로 간단히 개념을 정리하고, … 더 읽기

WPF OpenCV 프로젝트 #32: Morphology (Erosion, dilation, Opening, Closing)

Morphology 적용 이미지

Morphology (모폴로지: 형태학)를 주제로 Erosion (침식), Dilation (팽창), Opening (열림), Closing (닫힘), Gradiant (그레디언트), Top-Hat, Black-Hat 에 대해 OpenCvSharp에서 제공하는 함수들을 이용해서 한꺼번에 순차적으로 간단히 개념을 정리하고, WPF OpenCV 프로젝트에 구현해 보겠습니다.이전 포스팅(#31)들에서 Average Blur, Box Filter, Gaussian Blur, Median Blur, Bilateral Filter 들을 OpenCvSharp에서 제공하는 함수들을 이용해서 처리하는 방법과 Edge Detection Filter 들에 대해 … 더 읽기

WPF MIL Project #3 – MIL Image Acquisition (Digitizer & DCF)

MdigProcess Sequence

WPF MIL 프로젝트에서 MIL Image Acquisition (이미지 획득: Digitizer & DCF) 방법에 대해 MIL 영상 처리 라이브러리에서 다루는 내용을 이번 포스팅에서 정리하도록 하겠습니다. 이전 포스팅에서는 MIL 라이브러리의 Architecture 에 대해 나름 자세하게 정리했었습니다. Application Context 아래에 최상위 객체인 System 객체를 생성하고, System 에서 필요에 의해 사용하게 되는 각각의 객체 (Digitizer, Buffer, Display, Graphics Context, …) … 더 읽기

WPF OpenCV 프로젝트 #31: Edge Detection (Sobel, Scharr, Canny, …)

CannyEdge

BasicDifferential, Roberts, Prewitt, Sobel, Scharr, Laplacian, Canny Edge 를 이용한 Edge Detection (경계 처리)를 주제로 OpenCvSharp에서 제공하는 함수들을 이용해서 한꺼번에 순차적으로 간단히 개념을 정리하고, WPF OpenCV 프로젝트에 구현해 보겠습니다. 지난 포스팅(#30)에서 Average Blur, Box Filter, Gaussian Blur, Median Blur, Bilateral Filter 들을 OpenCvSharp에서 제공하는 함수들을 이용해서 처리하는 방법을 나름 깊이 있게 다뤘습니다. 이번 포스팅에서 다룰 … 더 읽기

WPF OpenCV 프로젝트 #30: Filters (Average Blur, Box Filter, Gaussian Blur, Median Blur, Bilateral Filter)

Image Blur-Bilateral Filter

Average Blur, Box Filter, Gaussian Blur, Median Blur, Bilateral Filter 들을 이번 포스팅을 통해OpenCvSharp에서 제공하는 함수들을 이용해서 한꺼번에 순차적으로 간단히 개념을 정리하고, WPF OpenCV 프로젝트에 구현해 보겠습니다.이전 포스팅(#29)에서 Filter (Blur, Sharpen, Edge) 효과를 Kernel Matrix (커널 행렬: 3 x 3)을 사용자가 직접 만들어서 Cv2.filter2D() 함수를 이용해서 처리하는 방법을 나름 깊이 있게 다뤘습니다. 사용자가 적용하려는 filter … 더 읽기

WPF MIL Project #1 – Summary of Post

MIL 영상 처리 라이브러리를 활용하여 개발 진행 시 필요한 Development Envirment 등 WPF MIL 프로젝트를 앞으로 포스팅 하면서 진행하기 위한 준비 과정을 정리하도록하겠습니다. Intro Machine Vision (머신 비전) 분야에 종사하는 개발자라면 Matrox Imaging Library(MIL)는 익숙한 이름일 것입니다. Matrox MIL(Matrox Imaging Library)은 현재 Zebra Technologies에 인수되어 Aurora Imaging Library(AIL)라는 새로운 명칭으로 제공되고 있습니다. 그러면서 그동안 배포되었던 … 더 읽기

WPF OpenCV 프로젝트 #29: Image Filter – Convolution & Kernel

Convolution Filter

Convolution과 kernel 행렬로 Filter (Blur, Sharpen, Edge) 효과를 이미지에 적용하는 것에 대해 이번 포스팅에서 정리하고, WPF OpenCV 프로젝트에 구현하도록 하겠습니다. 이전 포스팅(#28)을 끝으로, Geometrix Transform(기하학적 변환)에 대해 마무리하고, 이번 포스팅 부터는 영상 처리에서 필터(Filter)에 대해 다루도록 할게요. 필터(Filter)라고 하면 정수기 내부에 있는 필터처럼 거름 망이나, 여과기 또는 공기청청기의 필터를 떠올릴 수 있습니다. 영상 처리에서도 굳이 … 더 읽기

WPF OpenCV 프로젝트 #28: Camera Calibration (ChessBoard)

Distortion ChessBoard Image

Camera Calibration (카메라 캘리브레이션)과 관련하여 Barrel distortion (방사 왜곡) 이 Camera 에서 발생하였때 이것을 처리하는 방법에 대해 WPF OpenCV 프로젝트에 추가 하도록 하겠습니다. 지난 포스팅(#26, #27)에서는 우리가 Lens Distortion Simulation을 통해 일부러 멀쩡한 이미지를 볼록하거나 오목하게 찌그러뜨려 봤습니다. 그것도 두 번에 걸쳐서 진행을 했었죠. 하나는 OpenCV의 Polar 함수를 이용한 방법이었고, 다른 하나는 수학 연산을 이용한 … 더 읽기

WPF OpenCV 프로젝트 #27: Lens Distortion – Inverse Mapping & Optimization

Manual Calculate Lens Distortion Effect

Lens Distortion (렌즈 왜곡) 효과를 영상 처리로 구현 하는 또 다른 방법(Inverse Mapping)을 정리하고, WPF OpenCV 프로젝트에 추가해 보겠습니다. 이전 포스팅(#26)에서 다룬 Lens Distortion(렌즈 왜곡) 효과는 사실 포토샵의 Liquify(픽셀 유동화)나 어안 렌즈 효과 처럼 사용자가 원하는 지점을 중심으로 이미지를 볼록하거나, 오목하게 만드는 기능이었습니다. 볼록/오목 효과를 이미지의 특정 좌표를 기준으로 직교 좌표를 획득해서, 극 좌표로 변환하고, … 더 읽기

WPF OpenCV 프로젝트 #25: Lens Distortion (렌즈 왜곡) 효과 (Remap & Wave Effect)

Lens Distortion (Wave Effect)

Remap (픽셀 재배치)을 이용한 Wave Effect를 이번 WPF OpenCV 프로젝트에 정리하고 추가/구현 하도록 하겠습니다. 지난 포스팅(#24)에서는 원근 변환(Perspective Transform)을 통해 찌그러진 문서를 펴는 마법을 부렸습니다. 기억나시죠? 그동안 다뤘던 이동, 회전, 어핀, 원근 변환의 공통점이 있습니다. 바로 행렬(Matrix) 하나로 모든 것이 해결되는 ‘선형 변환‘이라는 점입니다. 즉, 직선은 변환 후에도 여전히 직선으로 남아있었습니다. 하지만 현실 세계는 그렇게 … 더 읽기