파일 이름인 test.jpg만을 얻고자 할때
CString 클래스의 reversfind와 find 함수를 사용하면 쉽게 가져 올 수 있다.
CString test;
test = Path;
int flag = test.Find('\\');
이렇게 되면 flag에 가장 왼쪽 \의 자리값을 가져오고
test.RversFind함수를 사용하면 오른쪽 끝에 있는 \의 자리값을 가져온다
동적할당하는 함수 구현
** (x)
**& (o)
void alloc(int **&src,int w,int h);
void main(){
int **src;
alloc(src,w,h);
}
void alloc(int **&src,int w,int h){
int i,j;
src = new int*[h];
for(i=0;i<h;i++){
src[i] = new int[w];
}
}
출처 : http://www.newtypeunion.com/40?category=5
Smooth
OpenCV에서는 몇가지 방법으로 Smooth를 할 수 있게 하여 줍니다.
함수의 원형은 다음과 같습니다.
void cvSmooth( const CvArr* src, CvArr* dst,
int smoothtype=CV_GAUSSIAN,
int param1=3, int param2=0, double param3=0 );
smoothing 타입에 따라서 파라미터 인자의 역활이 바뀝니다.
요 부분만 알고 있으면 나머진 쉽습니다.
src
원본 이미지
dst
결과 이미지
smoothtype
smoothing 타입
param1
첫번째 인자
param2
두번째 인자
In case of simple scaled/non-scaled and Gaussian blur if param2 is zero, it is set to param1.
param3
가우시안 방식일 경우 시그마를 넣어야 하지만,
이 파라미터가 0이면 커널 사이즈에서 자동으로 만들어진다. 수식은 아래와 같습니다.
sigma = (n/2 - 1)*0.3 + 0.8,
where n=param1 for horizontal kernel,
n=param2 for vertical kernel.
보통의 시그마를 쓸 경우 그냥 좀 빨라진다. (차이는 ???)
- 사실 차이라는게 크게 없는듯 합니다. 많이 하면 차이가 있겠지만 제 머쉰에서는 금방 결과가 나왔습니다.
커널 사이즈를 안주고 (0으로 주고) 호출하면 역으로 시그마에서 커널 사이즈를 만듭니다