일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- data science
- Big Data
- Deep learning
- 확률
- No SQL
- node.js
- 빅 데이타
- WebGL
- 몽고디비
- 인공지능
- 빅데이터
- c++
- 통계
- openCV
- MongoDB
- 김양재 목사
- probability
- 빅데이타
- 딥러닝
- 주일설교
- Artificial Intelligence
- 우리들교회
- nodeJS
- 김양재 목사님
- 데이터 과학
- 김양재
- 빅 데이터
- Machine Learning
- Statistics
- R
- Today
- Total
목록openCV (40)
Scientific Computing & Data Science
이미지를 읽어온 후 일부 영역에 지정된 컬러를 입히는 예제코드입니다. Example Code12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849#include "stdafx.h"#include #include #include using namespace std;using namespace cv; /** @function main */int main( int argc, char** argv ){ // Read an image cv::Mat image = cv::imread( {YOUR_IMAGE_PATH}, 1 ); uchar *data = image.data; uchar *blue, *green, ..
이번 포스팅에서는 OpenCV의 Mat class의 data pointer를 통해 특정 픽셀의 컬러 정보를 얻어오는 방법에 대해 알아보도록 하겠습니다. 1. 이미지를 로딩합니다. 12// Read an imagecv::Mat image = cv::imread( YOUR_IMAGE_PATH, 1 );cs 2. uchar 타입의 image data pointer를 얻어옵니다. 1uchar *data = image.data;cs 3. 마찬가지로 컬러 채널별로 uchar 타입을 선언합니다. 1uchar *blue, *green, *red;cs 4. 특정 픽셀 (j, i) 각 채널 데이터를 얻어옵니다. 123blue = image.data + j*image.step + i*image.elemSize() + 0;g..
PrototypeCV_EXPORTS_W void resize( InputArray src, OutputArray dst, Size dsize, double fx=0, double fy=0, int interpolation=INTER_LINEAR ); Example Code123456789101112131415161718192021222324252627282930313233343536#include "stdafx.h"#include "opencv2/imgproc/imgproc.hpp"#include "opencv2/highgui/highgui.hpp"#include #include #include using namespace cv; /// Global variablescv::Mat src, dst;char..
OpenCV에서 Webcam으로부터 camera frame을 얻어와서 Window에 띄우는 절차는 다음과 같습니다: (1) VideoCapture 인스턴스를 생성한다. (2) 생성한 인스턴스가 유효한지 검사한다. (3) Window를 생성한다. (4) Frame을 갱신한다. (5) 생성한 Window에 갱신된 frame을 디스플레이한다. (6) Window가 닫힐 때까지 (4) - (5)를 반복한다. Example Code 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253#include "stdafx.h"#include #include using namespace cv; /////..
TheoryImage PyramidImage Pyramid란, 원본 이미지로부터 원하는 만큼 연속적으로 다운샘플링(downsample)을 하는 것을 의미합니다. Image Pyramid의 종류Gaussian Pyramid : 이미지 다운샘플(downsample)Laplacian Pyramid : 이미지 업샘플(upsample)Gaussian Pyramidi 번째 레이어를 \(G_i\), (i + 1)번째 레이어를 \(G_{i+1}\)라고 하겠습니다.(i + 1)번째 레이어를 얻으려면 다음의 Gaussian 커널을 \(G_i\)를 컨벌루션합니다: \( \displaystyle{\frac{1}{16}} \begin{bmatrix} 1 & 4 & 6 & 4 & 1 \\ 4 & 16 & 24 & 16 & 4 \..
[Theory]wheref(i+k, j+l) : source imageh(k, l) : kernelg(i, j) : filtered image [File Types]Box FilterGaussian FilterMedian FilterBilateral Filter : refer to this link [Source Code]#include "stdafx.h" #include "opencv2/imgproc/imgproc.hpp" #include "opencv2/highgui/highgui.hpp" using namespace std; using namespace cv; // Global Variables int DELAY_CAPTION = 1500; int DELAY_BLUR = 100; int MAX_KE..
[cv::putText 함수의 Prototype]//! renders text string in the image CV_EXPORTS_W void putText( Mat& img, const string& text, Point org, int fontFace, double fontScale, Scalar color, int thickness=1, int lineType=8, bool bottomLeftOrigin=false ); [Source Code]123456789101112131415161718192021222324252627282930313233343536#include "stdafx.h"#include "opencv2/opencv.hpp" using namespace cv; int _tmain(..
Brightness & Contrast 조정\( g(x) = \alpha f(x) + \beta \) where \(f(x)\): Source Image Pixels,\(g(x)\): Output Image Pixels\(\alpha\): Gain( > 0), \(\beta\): Bias 이를 픽셀 단위로 풀어 쓰면, \( g(i,j) = \alpha f(i,j) + \beta \) i : 행, j : 열Example Code1234567891011121314151617181920212223242526272829303132333435363738#include "stdafx.h"#include "opencv2/opencv.hpp" using namespace cv; int _tmain(int argc, _..
우선 cv::Mat의 이미지 데이터를 얻어옵니다: cv::Mat image = cv::imread( YOUR_IMAGE_PATH ); 이미지의 시작 픽셀에 대한 데이터 포인터는 다음과 같이 얻을 수 있습니다: uchar *data = image.data; 이 데이터 포인터로부터 이미지의 다음 행(row)의 포인터를 얻을 수 있습니다: data += image.step; step은 이미지의 한 라인 내의 모든 bytes 수입니다. 만약 (j, i)에 해당하는 픽셀의 주소값을 얻고 싶다면 다음과 같이 얻을 수 있습니다: data = image.data + j*image.step + i*image.elemSize(); 이것은 &image.at( j, i )과 동일한 연산입니다.
reshape 메써드는 메모리 복사 또는 픽셀의 위치 변경 없이 Matrix의 Dimension을 변경합니다.Example Code123456789// open the imagecv::Mat image = cv::imread( YOUR_IMAGE_PATH ); if( image.isContinuous() ) image.reshape( 1, image.cols * image.rows ); // display imagecv::namedWindow( "Image" );cv::imshow( "Image", image );cs reshape 메써드의 첫번째 파라미터는 채널의 새로운 개수이고 두번째 파라미터는 행(rows)의 새로운 개수입니다. 열(columns)의 개수는 자동으로 계산됩니다.