일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 통계
- nodeJS
- 빅데이터
- No SQL
- Machine Learning
- probability
- 빅데이타
- Deep learning
- 빅 데이터
- 김양재 목사
- 딥러닝
- 확률
- 주일설교
- data science
- openCV
- node.js
- 김양재 목사님
- Big Data
- Artificial Intelligence
- 우리들교회
- 인공지능
- MongoDB
- 몽고디비
- WebGL
- 데이터 과학
- R
- 김양재
- c++
- Statistics
- 빅 데이타
- Today
- Total
목록openCV (40)
Scientific Computing & Data Science
Concept OpenCV의 filter2D는 Linear Filter를 생성하는 함수. Prototype Prototype은 다음과 같습니다: void cv::filter2D ( InputArray src, OutputArray dst, int ddepth, InputArray kernel, Point anchor = Point(-1,-1), double delta = 0, int borderType = BORDER_DEFAULT ) 이 함수는 주어진 kernel을 이용하여 convolution을 하는데 이용됩니다. 사실 이 함수는 convolution을 하는 것이 아니라 correlation을 계산하는 것입니다: \( \mathrm{dst}(x,y) = \displaystyle{ \sum_{ 0 \l..
이번 포스팅에서는 OpenCV의 CUDA 라이브러리 함수를 이용하여 Canny Edge Detector에 대한 연산 성능을 비교해 보도록 하겠습니다. 연산에 사용할 이미지는 Pixar Animation의 Up의 포스터입니다. 1. CPU[Example Code] 12345678910111213141516171819202122232425#include #include "opencv2/opencv.hpp" using namespace cv; int main( int argc, _TCHAR* argv[] ){ const int64 start = getTickCount(); cv::Mat src = cv::imread( "up.jpg", 0 ); if( !src.data ) exit( 1 ); cv::Mat d..
OpenCV의 cuda::DeviceInfo() 함수를 이용하여 각자의 CUDA Device의 정보를 출력하는 소스는 다음과 같습니다:Example Code12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914..
이번 글에서는 OpenCV에서 Webcam을 통해 실시간으로 얼굴을 인식하는 방법에 대하여 알아보도록 하겠습니다. 튜토리얼 방식으로 진행되며 아래의 절차를 따라 테스트 해 보시기 바랍니다. Tutorial1. Webcam으로 Frame Capture를 합니다. 12345678// open the default cameracv::VideoCapture cap( 0 ); // check if we succeededif( !cap.isOpened() ) { std::cerr
TheoryComputer Vision 분야에 있어 Feature(특징점)는 매우 중요한 개념입니다. Feature를 이용하여 서로 다른 Frame 간에 어떠한 변화가 있는지 감지할 수 있기 때문입니다. 즉, 컴퓨터가 이미지를 통해 사물을 인식하는 방식은 이미지 전체가 아닌 이미지가 가지고 있는 Feature들을 통해 인식하기 때문입니다. 그렇다면 Image Feature로 정의되는 것들은 무엇일까요?첫째, Edges,둘째, Corners셋째, Blobs(Region of Interest, ROI라고도 함) 이들 Feature의 유형 중 Corner Detector의 하나인 Harris Corner Detector에 대해 알아보기로 하겠습니다. Harris Corner Detector는 1988년에 발표..
Edge를 검출하기 위한 Operator로써 Sobel, Prewitt, Robert, Scharr 등이 있는데 이들은 모두 1차 미분을 기반으로 하고 있습니다. 2차 미분값을 이용하여서도 Edge를 검출할 수가 있는데 이는 일반적으로 Edge에서 2차 미분값이 0이 되기 때문입니다. 그러나, 2차 미분값이 0이 된다고해서 반드시 Edge라는 보장은 없습니다. Edge가 아닌 곳에서도 2차 미분값이 0이 될 수 있는 가능성이 있기 때문입니다.TheoryLaplacian Operator는 2차 미분 Operator로써 다음과 같이 정의됩니다: \( \nabla^2 = \nabla \cdot \nabla = \begin{bmatrix} \displaystyle{ \frac{\partial}{\partial ..
이번 글에서는 OpenCV를 통해 WebCam의 Frame을 Capture하는 방법에 대하여 알아보도록 하겠습니다. C 라이브러리를 기반으로 하는 버전 2.0 이전의 방식과 C++ 라이브러리를 기반으로 하는 버전 2.0 이상의 방식을 비교해 보도록 하겠습니다.C 기반우선 C 라이브러리를 기반으로 하는 예전 방식은 다음과 같습니다.Example Code 1234567891011121314151617181920212223242526272829303132333435363738394041424344#include #include #include #include using namespace std;using namespace cv; /* @ function main */int main( int argc, char..
이번 글에서는 Edge Detector 중의 하나인 Sobel Operator를 이용하여 Edge Detection을 구현하는 방법에 대하여 알아보도록 하겠습니다. 1. Sobel Operator(1) TheorySobel Operator는 1968년도에 "Isotropic 3×3 Image Gradeient Operator"라는 아이디어를 발표한 Irwin Sobel과 그의 Gary Feldman의 이름을 따르는 Edge Detection Algorithm입니다.[Wikipedia]여타 Image Processing Fileter와 마찬가지로 회선처리(Convolution)에 의해 계산되며 수평 및 수직 Sobel Kernel은 다음과 같습니다: \( G_x = \begin{bmatrix} -1 & 0..
이번 포스팅에서는 OpenCV에서 RGB 컬러를 Grayscale로 변환하는 방법에 대하여 알아보도록 하겠습니다. 우선 이론적으로 살펴보면, 가장 널리 사용되는 방법 중 하나가 Luma Coding(https://en.wikipedia.org/wiki/Grayscale)을 이용한 방법인데, 수식은 다음과 같습니다: \( Y' = 0.2126 \times R' + 0.7152 \times G' + 0.0722 \times B' \) 여기서, R', G', B'은 Red, Green, Blue 채널에 대한 비디오 시스템의 Gamma-compressed 값입니다. 이들로부터 계산된 Y'은 비선형 Luma 컴포넌트(Nonlinear Luma Component)이며, Grayscale된 값입니다. 이 수식을 기반..
Gaussian Blur는 Gaussian Function을 이용하여 이미지를 블러링하는 기법입니다. Gaussian Function으로부터 계산된 Mask를 통해 각 픽셀에 대한 주변의 픽셀 집합과 회선처리(Convolution)하여 새로운 픽셀값으로 저장합니다. 이 때, 각 코너 및 엣지(Edge)의 픽셀에 대하여서는 회선처리를 할 수 있는 충부한 Element들이 확보되지 않으므로, 엣지를 동일하게 복사하거나 확보되는 element들에 대해서만 회선처리를 할 수 있습니다. 회선처리를 위한 Gaussian Function은 다음과 같습니다: \( G(x,y) = \displaystyle{ \frac{1}{2 \pi \sigma^2} e^{- \displaystyle{ \frac{x^2 + y^2}{2..