#include "stdafx.h"#include "targetver.h"#include "opencv2/opencv.hpp"#include "opencv/cxcore.hpp"#include "opencv/highgui.h"#include #include using namespace cv;using namespace std; void bgsub(char *); int main(int argc, char* argv[]) {bgsub("bgs-사람들"); return 0;} void bgsub(char* wcam) {Mat frame, fg, bg, dfg;boolean stop(false), detectShadow = true; // 그림자를 찾아준다.int history = 500, keyboard;ve..
가장 중요한 단어 = 이진화 Otsu's method 링크 : http://mauver.kr/wp/archives/339 http://www.labbookpages.co.uk/software/imgProc/otsuThreshold.html wiki search link : https://en.wikipedia.org/wiki/Otsu's_method freeman chain code = 방향에 대해서 민감하다. = 물체의 경계선을 만들어준다. wiki search link : https://en.wikipedia.org/wiki/Chain_code signature = 원인 모양을 찾고 = 물결모양이면 사각형 (봉우리가 4개) = 물결모양이고 봉우리가 4개이면 삼각형즉, 2차원의 모양을 파악할 수 있다...
공간 필터링이웃처리 과정1. 중앙점(x,y)의 정의 2. 이웃에 있는 화소만을 포함하는 연산 수행3. 이 연산의 결과를 그 점에서의 처리의 "응답"으로 하고 4. 영상의 모든점에 대해 반복한다. 중앙점을 이동시키는 과정은 새로운 이웃을 만드는 데 입력영상의 각 화소에 대해 하나씩 생긴다. 만약 이웃화소들에 대해 수행된 연산이 선형적이면, 선형공간 필터링비선형 적이면, 비선형 공간 필터링 선형 공간 필터링(spatial convolution)이웃의 각 화소를 대응하는 계수로 곱하고 그 결과들을 더해서 각 점 (x,y)에서의 응답을 얻는 것으로 구성된다. 만약, 이웃을 크기가 m*n이면, mn개의 계수가 필요하다. 계수란?- 마스크, 필터, 커널,윈도우, 템플릿 등을 가리킴 각 점(x,y) 에서의 응답은 필..
참고 블로그 http://blog.naver.com/hms4913/30181847790 image smoothing 가우시안 또는 이와 유사한 커널함수를 컨벌루션하여 영상의 픽셀 정보를 변경하는 기법 마스크기반 영상처리 7.1 영상에서 컨볼루션 : 입력영상에 마스크를 적용하여, 입력영상의 픽셀값과 마스크의 가중치를 각각 곱한 다음 그 합을 출력영상의 픽셀값으로 정하는 것 : 마스크 = 필터 = 윈도우 = 커널 영상에서 가장 바깥에 있는 경계선을 처리하는 방법 ㅇ 원래 영상에 픽셀값 0인 검은색으로 테두리를 추가하여 영상의 크기를 크게 만든 다음 마스크를 적용하는 방법 ㅇ 원래 영상에 가장 바깥 경계와 같은 색의 테두리를 추가하여 영상의 크기를 크게 만든 다음 마스크를 적용하는 방법 ㅇ 입력영상에서 마스크..
픽셀에 임의 접근하기 : at() method (y) (x)Mat::at(int row, int col) at 은 templete 함수이기 때문에 type 을 지정해야됨. for grayscale images - image.at (r,c) = value; // 값을 읽어오거나 저장이 가능함 for true color images - image.at(r,c)[channel] = value; channel: 0, 1, 2( 각 B,G ,R) => 벡터로 생각하자 r,c 위치의 백터 3의 위치에 저장하고 만약 R G B 중 한개의 값이다 하면 index를 사용해서 구분한다. Vec - typedef Vec(uchar,3) Vec3b; void colorinvert(Mat &image) {int numOfLin..