반응형

2D FFT 테스트를 해야 하는데 lena.jpg가 내가 원하는 사이즈가 아니어서 

크기를 변경해야 하는 일이 발생했다.


2의 n 승 크기로 변경을 하고 싶다.


방법은.. 생각보다 간단..


환경 : Windows 10, VS 2015 community, c++, opencv3.1


우선 기본 크기를 확인해 보았다.



225 / 225 크기이다.


나는 256/256 크기로 변경하고자 한다.

resize() 함수를 사용해 보자.




이렇게 사이즈를 바꿀수가 있다.





반응형

'ETC > OpenCV' 카테고리의 다른 글

[OpenCV] 설치-nuget package  (0) 2017.06.11
cv::Mat copy to std::vector  (0) 2016.11.23
[OpenCV] Mat 이미지 자르기  (0) 2016.10.21
[OpenCV] Mat::create()  (0) 2016.10.20
[OpenCV] Mat 클래스 행렬 생성 2  (0) 2016.10.20
반응형

OpenCVSharp 은 nuget 으로 설치하는 것을 정리 했는데

OpenCV는 정리를 안했었다.


OpenCVSharp 은 바로 검색해서 설치하면 되지만 OpenCV는 Console창을 이용해서 설치해야 되더라....


c++프로젝트를 만든 후 진행 해보자.


우선 tools>nuget package manager>Packge Manager Console 을 선택한다.


install-package opencv3.X

opencv 원하는 버전을 선택하여 적으면 된다.




설치 완료



NuGet 패키지 화면으로 가보면 설치된 것을 확인할 수 있다.

반응형

'ETC > OpenCV' 카테고리의 다른 글

[OpenCV] 이미지 크기 변경 - resize()  (0) 2017.06.12
cv::Mat copy to std::vector  (0) 2016.11.23
[OpenCV] Mat 이미지 자르기  (0) 2016.10.21
[OpenCV] Mat::create()  (0) 2016.10.20
[OpenCV] Mat 클래스 행렬 생성 2  (0) 2016.10.20
반응형

opencv를 사용해서 개발을 시작할 때 Mat 을 vector로 바꾸는 작업을 했었다.

그때는 틀림 없이 Mat::copyTo 함수를 사용해서 간단하게 했던것 같은데

다시 작업을 하려니 되질 않네...

다른 방법을 찾아 나섰다.



검색어 : 구글 - mat copyto vector


for문을 이용해서 하는 방법도 많이 나오지만

나는 함수 하나로 해결하고 싶었다.


assign 함수를 사용하면 간단하게 끝낼 수 있다.

vector 끼리 복사 할때 사용했었는데 Mat 도 적용 가능 하다.


자료형이 double인 변수를 복사하려면




이렇게 하면 한방에 끝낼 수 있다.


반응형

'ETC > OpenCV' 카테고리의 다른 글

[OpenCV] 이미지 크기 변경 - resize()  (0) 2017.06.12
[OpenCV] 설치-nuget package  (0) 2017.06.11
[OpenCV] Mat 이미지 자르기  (0) 2016.10.21
[OpenCV] Mat::create()  (0) 2016.10.20
[OpenCV] Mat 클래스 행렬 생성 2  (0) 2016.10.20
반응형

이론만 쭉 정리하다가 이제 실제로 필요한 것들만 찾아서 정리 하기로 했다.


내가 필요한거슨 이미지의 특정 부분만 사용할 것이라 잘라내는 과정이 필요했다.


Mat을 Range로 범위를 지정할 수 있으므로 row와 col을 원하는 만큼 가져와서 출력해 보자.



예제


결과

이게 실제 실행 화면이고 

아래가 겹쳐서 위치를 놓아본 것입니다.




Mat img2 = img(Range(100,200), Range(100,200));

첫번째 Range(100,200)은 col을 100~199 까지 자른것이고

두번째 Range(100,200)은 Row를 100~199까지 자른것이지요


호호호호




반응형

'ETC > OpenCV' 카테고리의 다른 글

[OpenCV] 설치-nuget package  (0) 2017.06.11
cv::Mat copy to std::vector  (0) 2016.11.23
[OpenCV] Mat::create()  (0) 2016.10.20
[OpenCV] Mat 클래스 행렬 생성 2  (0) 2016.10.20
[OpenCV] Mat 클래스 행렬 생성 1  (0) 2016.10.20
반응형

Mat::create() 메서드는 rows, cols, type, size, ndims 등에 의해서 새로운Mat 클래스 행렬을 생성.


void Mat::create(int rows, int cols, int type);

void Mat::create(Size size, int type);

void Mat::create(int ndims, const int* sizes, int type);



예제


결과







반응형

'ETC > OpenCV' 카테고리의 다른 글

cv::Mat copy to std::vector  (0) 2016.11.23
[OpenCV] Mat 이미지 자르기  (0) 2016.10.21
[OpenCV] Mat 클래스 행렬 생성 2  (0) 2016.10.20
[OpenCV] Mat 클래스 행렬 생성 1  (0) 2016.10.20
[OpenCV] Range 클래스  (0) 2016.10.20
반응형

다른 방법의 행렬 생성을 알아보자..

그냥 이런 방법도 있다고만.. 알면 될거 같은데

내가 편한 방법으로 주로 사용할테니


예제


결과

딱봐도 감으로 알거라 생각...됨.. ?

그저 생성자일 뿐이니까...


반응형

'ETC > OpenCV' 카테고리의 다른 글

[OpenCV] Mat 이미지 자르기  (0) 2016.10.21
[OpenCV] Mat::create()  (0) 2016.10.20
[OpenCV] Mat 클래스 행렬 생성 1  (0) 2016.10.20
[OpenCV] Range 클래스  (0) 2016.10.20
[OpenCV] Scalar_ 클래스  (0) 2016.10.19
반응형

Mat 클래스는 C++ API에서 가장 중요한 클래스 중 하나로 1채널 또는 다채널의 실수, 복소수, 행렬, 영상 등의 수치 데이터를 표현하는 n차원 행렬 클래스이다.


행렬 생성

Mat 클래스는 다양한 생성자를 통하여 행렬을 생성한다.

행렬의 크기는 rows, cols, size로 명시

type은 자료형으로 CV_8UC1 ... CV_32FC1 ... 등을 사용 한다.

생성자를 다 써 놓는것보다 예제를 통해서.. 알아보자.



행렬 생성 예제


결과



설명

A,B,D는 쉽게 이해가 갈 것이다. 2행 3열을 생성하는 것인데

C는 다른점이 3채널이라는 것이다. 

그래서 C는 3열이지만 행에 9개의 정수가 들어가 있다.


또 특이점은 A, A1 이다. 인자 없는 생성자를 통해서 했을때에는 행렬이 랜덤한 수가 들어가는 것으로 보인다.

이 점에대해서는.. 책에 설명이 되어 있지 않아... 패스...

반응형

'ETC > OpenCV' 카테고리의 다른 글

[OpenCV] Mat::create()  (0) 2016.10.20
[OpenCV] Mat 클래스 행렬 생성 2  (0) 2016.10.20
[OpenCV] Range 클래스  (0) 2016.10.20
[OpenCV] Scalar_ 클래스  (0) 2016.10.19
[OpenCV] Vec 클래스  (0) 2016.10.19
반응형

Range 클래스는 Mat 클래스에서 행 또는 열의 범위를 지정하는 템플릿 클래스이다.

start는 포함이고 end는 포함하지 않는다.

Range(0,2)의 범위는 0,1 이다.


예제


결과


예제를 하면서 Range가 어떻게 쓰이는지 알 수 있다.

Mat(행 범위, 열범위) 이렇게 된다는 것을.. 


슬슬 나에게 필요한 Mat 클래스에 대해 정리할 때가 온것 같다..




반응형

'ETC > OpenCV' 카테고리의 다른 글

[OpenCV] Mat 클래스 행렬 생성 2  (0) 2016.10.20
[OpenCV] Mat 클래스 행렬 생성 1  (0) 2016.10.20
[OpenCV] Scalar_ 클래스  (0) 2016.10.19
[OpenCV] Vec 클래스  (0) 2016.10.19
[OpenCV] Matx 클래스  (0) 2016.10.19
반응형

Scalar_ 클래스는 Vec 클래스에서 상속받은 4개의 요소를 갖는 템플릿 클래스

Scalar_와 CvScalar 사이의 변환이 가능하다.

typedef Scalar_<double> Scalar 로 정의되어 있어 double형에 대해서는 Scalar를 사용할 수 있다.


예제


결과


반응형

'ETC > OpenCV' 카테고리의 다른 글

[OpenCV] Mat 클래스 행렬 생성 1  (0) 2016.10.20
[OpenCV] Range 클래스  (0) 2016.10.20
[OpenCV] Vec 클래스  (0) 2016.10.19
[OpenCV] Matx 클래스  (0) 2016.10.19
[OpenCV] RotatedRect 클래스  (0) 2016.10.19
반응형

Vec 클래스는 Matx 클래스에서 상속받은 클래스로, 짧은 수치 벡터를 위한 템플릿 클래스.

기본적인 벡터에서의 연산이 가능하며 3차원 벡터의 외적을 계산할 수 있고, [] 연산자에 의해 접근하며,

Vec<T,2> 와 Point_, Vec<T.3>와 Point_, Vec<T,4>와 Scalar_,CvScalar  사이의 변환이 가능

typedef 로 정의된 Vec2b, Vec3b 등의 클래스들이 있다.



솔직히 Vec부터는 수학적의미가.. 조금 더 깊어져서 잘 이해가 되지 않는다.

수학공부를 해야 겄네;;


예제

외적, 내적 이런 개념이 나오는데,, 잘 모르겠다. 그래서 우선 이런게 있다 생각하고 패스


결과




반응형

'ETC > OpenCV' 카테고리의 다른 글

[OpenCV] Range 클래스  (0) 2016.10.20
[OpenCV] Scalar_ 클래스  (0) 2016.10.19
[OpenCV] Matx 클래스  (0) 2016.10.19
[OpenCV] RotatedRect 클래스  (0) 2016.10.19
[OpenCV] Rect_ 클래스  (0) 2016.10.19

+ Recent posts