이미 빌드되어있는 dll과 헤더들은 사용X - opengl 관련 함수들이 같이 컴파일되지 않은 상태라 사용불가, getBuildInformation() 으로 확인 가능


cmake를 통해 새로 빌드해주어야 한다.



cmake에서 configure하고 난 뒤 WITH_OPENGL 체크하고 다시 configure한 후에 generate한다.

생성된 ALL_BUILD를 통해 빌드하면 release/debug모드의 bin(.dll)/lib(.lib)을 얻을 수 있다.


바뀐 .dll을 등록하기 위해 이전에 등록해두었던 환경변수를 수정하고

사용하고 있던 프로젝트의 경로들도 수정해준다.



과정을 완료하면 위의 사진처럼 getBuildInformation() 함수를 통해 확인할 수 있다.


그 후 테스트해보면 opengl관련 함수들도 잘 작동된다!




참고 : http://cinaburo.tistory.com/1

VideoCapture를 이용해서 카메라 출력한 뒤 opengl 도형 띄우는 예제를 실행시켜봤는데 색이 이상하게 나온다

피부나 붉은 계통은 푸르게 나오고 푸른 계통은 붉게 나오는 것


Mat은 capture.read(frame); 할 시 BGR로 이미지를 read하나보다.

cvtColor(frame, frame, CV_BGR2RGB); 사용하니 색이 바르게 나온다.

http://jepsonsblog.blogspot.kr/2012/11/rotation-in-3d-using-opencvs.html


회전행렬 사용한 듯

1
2
3
4
5
Mat sticker;
sticker.create(height, width, CV_8UC4);
//캔버스 배경색 투명하게 만들기
//맨 끝의 0값 - alpha
sticker = Scalar(2552552550);
cs


Scalar를 이용해서 채널들의 값을 바꿔주면 된다

alpha값을 0으로!

[작업환경]
openCV버전 : openCV 3.0.0 
VS 버전 : vs2015 Community
Debug ver./Release ver. 

[openCV 설치 방법]
1. openCV 다운로드
3.0.0 버전으로 다운로드

2. 환경변수 설정
1) 시스템 변수 -> 새로 만들기
변수 이름 : OPENCV_3_0_0_BUILD
변수 값 : D:\Program Files (x86)\openCV_3.0.0 (CV 설치한 경로) \opencv\build 

<OPENCV_X86/OPENCV_X64가 있으면 > 

2)시스템 변수 ->  OPENCV_X86 

맨 뒤에  %OPENCV_3_0_0_BUILD%\x86\vc12\bin; 추가


3)시스템 변수 -> OPENCV_X64

맨 뒤에 %OPENCV_3_0_0_BUILD%\x64\vc12\bin; 추가

4) 시스템 변수 -> path

맨 뒤에 ;%OPENCV_X86%;%OPENCV_X64%; 추가


<OPENCV_X86/OPENCV_X64가 없으면> 

2) 시스템 변수 -> 새로 만들기

변수 명 : OPENCV_X86

변수 내용 : %OPENCV_3_0_0_BUILD%\x86\vc12\bin;


3) 시스템 변수 -> 새로 만들기

변수 명 : OPENCV_X64

변수 내용 : %OPENCV_3_0_0_BUILD%\x64\vc12\bin; 


4) 시스템 변수 -> path

맨 뒤에 ;%OPENCV_X86%;%OPENCV_X64%; 추가



5) 재부팅


3. VS 2015 설정 

1) 구성 속성 -> C/C++ -> 일반 -> 추가 포함 디렉터리

$(OPENCV_3_0_0_BUILD)\include


2) 링커 -> 일반 -> 추가 라이브러리 디렉터리

32bit : $(OPENCV_3_0_0_BUILD)\x86\vc12\lib

64bit : $(OPENCV_3_0_0_BUILD)\x64\vc12\lib


3) 링커 -> 입력 -> 추가 종속성

<Debug>

opencv_ts300d.lib

opencv_world300d.lib


<Release>

opencv_ts300.lib

opencv_world300.lib






1
2
3
4
5
6
7
8
9
10
for(int i=0;i<sketch.cols;i++){
        for(int j=0;j<sketch.rows;j++){
            if(blur.at<uchar>(j, i) == 255){
                result.at<uchar>(j, i) = sketch.at<uchar>(j, i);
            }
            else{
                result.at<uchar>(j, i) = min(255, (sketch.at<uchar>(j, i)<<8)/(255-blur.at<uchar>(j, i)));
            }
        }
    }
cs


위 코드처럼 color dodge 함수를 만들고 테스트해봤더니 계속 abort() has been called 오류가 났다.

처음에는 여러개의 Mat들이 얕은 복사로 연결되어 있어서 오류나는 줄 알았는데 아니었다.


결과물을 저장할 result가 초기화되지 않아 지정 위치의 픽셀에 접근할 수가 없었던 것

result를 초기화 시켜주고 픽셀에 접근하니 잘 됐다.

'이미지 프로세싱 > OPENCV' 카테고리의 다른 글

[3.0.0] Mat 배경 투명하게 만들기  (0) 2017.02.14
[3.0.0] VS2015/openCV3.0.0 개발환경 설정  (0) 2017.01.20
[2.4.10] jpeg 이미지 디코딩  (0) 2017.01.04
[2.4.10->3.0] Mat의 기초  (0) 2016.11.30
[2.4.10] cvType  (0) 2016.11.25
1
2
3
4
5
6
7
8
HANDLE pMem = (HANDLE)GlobalLock(hPicture);    //hPicture은 전달받은 jpeg 이미지 파일 핸들
 
//가져온 메모리 주소를 이용하여 jpeg 디코딩
Mat encodedData = Mat(1280960, CV_16UC3, pMem);    //1280*960사이즈의 이미지 파일
Mat decodedImage = imdecode(encodedData, IMREAD_COLOR);
 
//성공
imshow("decode", decodedImage);
cs


이미지 파일을 jpeg 형태로 전달해주는 핸들을 가지고 작업을 해야했다.

jpeg 자체는 코드내에서 처리하지 못하므로 비트맵으로 변환해주어야 했다.

jpeg->bmp로 변환해주기 위해 디코딩함


openCV의 imdecode 함수를 사용했음



http://blog.iwanhae.ga/introduction-to-opencv/


Mat에 대한 정말 기본적인 정리글 + 필터


CV_<비트수>(S|U|F)C<채널 개수>


8-bit unsigned integer (uchar) : CV_8U

8-bit signed integer (schar) : CV_8S

16-bit unsigned integer (ushort) : CV_16U

16-bit signed integer (short) : CV_16S

32-bit signed integer (int) : CV_32S

32-bit floating-point number (float) : CV_32F

64-bit floating-point number (double) : CV_64F


ex) CV_32FC1 - 32비트 실수형 1채

[작업환경]

openCV버전 : openCV 2.4.10

VS 버전 : vs2010

Debug ver.


[openCV 설치 방법]

1. openCV 다운로드

2.4.10 버전으로 다운로드

http://opencv.org/downloads.html


2. 환경변수 설정

1) 시스템 변수 -> 새로 만들기

변수 이름 : OPENCV_2_4_10_BUILD

변수 값 : D:\Program Files (x86)\openCV_2.4.10 (CV 설치한 경로) \opencv\build


2) 시스템 변수 -> 새로 만들기

변수 이름 : OPENCV_X86

변수 값 : %OPENCV_2_4_10_BUILD%\x86\vc10\bin


3) 시스템 변수 -> 새로 만들기

변수 이름 : OPENCV_X64

변수 값 : %OPENCV_2_4_10_BUILD%\x64\vc10\bin


4) 시스템 변수 -> path

맨 뒤에 ;%OPENCV_X86%;%OPENCV_X64%; 추가


5) 재부팅


3. VS 2010 설정

1) 구성 속성 -> C/C++ -> 일반 -> 추가 포함 디렉터리

$(OPENCV_2_4_10_BUILD)\include


2) 링커 -> 일반 -> 추가 라이브러리 디렉터리

$(OPENCV_2_4_10_BUILD)\x86\vc10\lib


3) 링커 -> 입력 -> 추가 종속성

opencv_calib3d2410d.lib

opencv_contrib2410d.lib

opencv_core2410d.lib

opencv_features2d2410d.lib

opencv_flann2410d.lib

opencv_gpu2410d.lib

opencv_highgui2410d.lib

opencv_imgproc2410d.lib

opencv_legacy2410d.lib

opencv_ml2410d.lib

opencv_nonfree2410d.lib

opencv_objdetect2410d.lib

opencv_ocl2410d.lib

opencv_photo2410d.lib

opencv_stitching2410d.lib

opencv_superres2410d.lib

opencv_ts2410d.lib

opencv_video2410d.lib

opencv_videostab2410d.lib




+ Recent posts