컴퓨터 비전

김민교·2023년 4월 9일
0

concate는 deepcopy

videoCapture가 굉장히 비싼거였어서 캡처보드라는걸 메인보드에 꽂았았다.

비디오 저장 : videoWriter

이미지 픽셀값 읽고 쓰기 :

세로가 row,y 가로가 column, x

Reference 타입
Mat img;
Mat & I = img;
걔를 다른 이름으로 부르는 별칭이다. 포인터가 넘어오듯이 레퍼런스가 넘어오면 함수가 끝나도 값이 변경되어있다.

p = I.ptr(row):
-> c++ template이란게 있다.

Template
class Matrix
{
public :
Matrix(int nrows, int cols); // 생성자( Constructor)
{
data = new T[nrows*ncols];
}
~Matrix()
{
delete [] data;
}

// 하는일 똑같은데, 타입만 다름.
// 리유저블이 다름... 이때 Template을 쓰는 것.
int foo (int a ) { return a+1;}
float foo(float a) { return a+1.f;}

template
S foo (S a ) { return a+1;}
S foo(S a) { return a+1.f;}
protected: // 상속 받은 애만 ..
T * data;

};

int main()
{
Matrix a(3,4); -> instance 만들어짐.
// integer = T

a.foo(3);
}

Iterator
c++ standard Alogrithm -> STL

// 세 축으로 이루어짐
1. Container
2. Iterator
3. Alogrithm

#include
using namespace std;

int main()
{
vector //<- class Template이네! a;
list b;
얘네는 다 컨테이너다.
벡터는 queue고, list는 더블 링크드 리스트이다.
vector는 링크가 forward로만 되어있고, list는 forward랑 backward

vector::iterator iter = a.begin();

int sum=0;
for(vector::iterator iter = a.begin();
iter!=a.end();
++iter)
{
int a = i++;
int b = ++i;
// iterator를 마치 포인터ㄹ처럼)
sum+=(*iter);
}
return 0;

}

처음에 30 잡아놓고, 채우다가 꽉채우면 60개 또 잡아놓고 deepcopy.
size는 push_back 콜 할수록 숫자가 늘어남.

class iterator
{
iterator& operator++()
{
예전값을 기억하고 있어야됨 i++는
그냥 자기 자신을 보내면됨 ++i는

return (*this);
}
}

int a = i++: -> i를 a넣고, i를 증가시킴
-> int tmep = i;
i= i+1;
return temp;
int b = ++i; -> i를 증가시키고 b를 넣음
iter++;
++iter;

profile
안녕

0개의 댓글