'Programming/openCV'에 해당되는 글 65건

  1. 2018.03.19 openCV release mode와 debug mode 속도 차이
  2. 2018.03.19 openCV multicore support
  3. 2016.07.18 stitch / opencv / python
  4. 2016.07.14 opencv stitch
  5. 2016.07.13 opencv rtsp
  6. 2015.11.27 openMP + openCV 실패한 이유가..
  7. 2015.11.09 openMP + openCV 미스테리..
  8. 2015.10.20 휴 모멘트?
  9. 2015.10.20 opencv 카메라 왜곡 수정
  10. 2015.10.20 opencv sift surf
Programming/openCV2018. 3. 19. 10:38

각종 최적화랑 ASSERT 문으로 인해 속도 저하가 극심하니

릴리즈로 해라.. 정도?


[링크 : https://stackoverflow.com/.../opencv-slow-camera-framerate]

[링크 : https://stackoverflow.com/.../why-is-this-code-running-over-100-times-slower-in-debug-mode-than-release]

'Programming > openCV' 카테고리의 다른 글

opencv 원 추정  (0) 2019.01.16
OpenCV 분산처리  (0) 2018.04.25
openCV multicore support  (0) 2018.03.19
stitch / opencv / python  (0) 2016.07.18
opencv stitch  (0) 2016.07.14
Posted by 구차니
Programming/openCV2018. 3. 19. 10:38

openCV 2.4.6.1

intel TBB에서 openMP로 변환하여 라이브러리 빌드

[링크 : https://iamsrijon.wordpress.com/.../how-to-compile-opencv-to-utilize-multiple-core-processor-in-linux/]


라즈베리도 TBB에서 openMP로..

[링크 : https://stackoverflow.com/questions/28938644/opencv-multi-core-support]


openCV 3.4.1

얘도 머.. TBB

[링크 : https://docs.opencv.org/trunk/d7/dff/tutorial_how_to_use_OpenCV_parallel_for_.html]

'Programming > openCV' 카테고리의 다른 글

OpenCV 분산처리  (0) 2018.04.25
openCV release mode와 debug mode 속도 차이  (0) 2018.03.19
stitch / opencv / python  (0) 2016.07.18
opencv stitch  (0) 2016.07.14
opencv rtsp  (0) 2016.07.13
Posted by 구차니
Programming/openCV2016. 7. 18. 19:01

라즈베리에서 돌릴려고 하니 이미지가 큰지 segmentation fault가 뜨네 ㅠㅠ



소스는 해당 링크에서 다운로드..

클래스는 소스가 웹상에 없으니 이메일 써주고 받는게 속 편함

[링크 : http://www.pyimagesearch.com/2016/01/11/opencv-panorama-stitching/]



ImportError: No module named cv2

요런 에러 뜨면 패키지가 덜 설치 된거니 추가 설치 필요함


$ sudo apt-get install libopencv-dev python-opencv

[링크 : http://raspberrypi.stackexchange.com/questions/29148/python-cannot-import-opencv-module]

'Programming > openCV' 카테고리의 다른 글

openCV release mode와 debug mode 속도 차이  (0) 2018.03.19
openCV multicore support  (0) 2018.03.19
opencv stitch  (0) 2016.07.14
opencv rtsp  (0) 2016.07.13
openMP + openCV 실패한 이유가..  (0) 2015.11.27
Posted by 구차니
Programming/openCV2016. 7. 14. 11:38

rtsp로 받아서 stitch 한번 해볼까나

(cpu의 온기가 남아있습니다?)


[링크 : http://www.pyimagesearch.com/2016/01/11/opencv-panorama-stitching/]

[링크 : http://study.marearts.com/2013/11/opencv-stitching-example-stitcher-class.html]

[링크 : http://docs.opencv.org/2.4/modules/stitching/doc/stitching.html]

'Programming > openCV' 카테고리의 다른 글

openCV multicore support  (0) 2018.03.19
stitch / opencv / python  (0) 2016.07.18
opencv rtsp  (0) 2016.07.13
openMP + openCV 실패한 이유가..  (0) 2015.11.27
openMP + openCV 미스테리..  (0) 2015.11.09
Posted by 구차니
Programming/openCV2016. 7. 13. 18:37

예제는 mjpeg 같은데 h264 도 되려나?

다만 라즈베리 openmax 지원여부는 별개일 기분?


[링크 : http://blog.daum.net/pg365/195]

'Programming > openCV' 카테고리의 다른 글

stitch / opencv / python  (0) 2016.07.18
opencv stitch  (0) 2016.07.14
openMP + openCV 실패한 이유가..  (0) 2015.11.27
openMP + openCV 미스테리..  (0) 2015.11.09
휴 모멘트?  (0) 2015.10.20
Posted by 구차니
Programming/openCV2015. 11. 27. 15:25

혹시 imshow가 바로 그리지 않아서 일려나?

나중에 복사 이후 imshow에서

바로 updateWindow() 해주고

그거까지 묶어줘봐야 겠다


[링크 : http://docs.opencv.org/2.4/modules/highgui/doc/user_interface.html#updatewindow]

'Programming > openCV' 카테고리의 다른 글

opencv stitch  (0) 2016.07.14
opencv rtsp  (0) 2016.07.13
openMP + openCV 미스테리..  (0) 2015.11.09
휴 모멘트?  (0) 2015.10.20
opencv 카메라 왜곡 수정  (0) 2015.10.20
Posted by 구차니
Programming/openCV2015. 11. 9. 11:30

되거나


안되거나

OpenCV Error: Bad flag (parameter or structure field) (Unrecognized or unsupported array type) in cvGetMat, file /usr/src/packages/BUILD/opencv-2.4.1+dfsg/modules/core/src/array.cpp, line 2482

terminate called after throwing an instance of 'cv::Exception'

  what():  /usr/src/packages/BUILD/opencv-2.4.1+dfsg/modules/core/src/array.cpp:2482: error: (-206) Unrecognized or unsupported array type in function cvGetMat 


소스는 간단한데..

구동이 될때도 있고 안될때도 있고.. 머지?


+2015.11.10

생각해보니 mutex 변수는 별도 프로세스에서 공유가 안되니..

실질적으로는 lock이 안되는 걸지도?


$ cat cvmp.cpp

#include <opencv2/core/core.hpp>

#include <opencv2/highgui/highgui.hpp>

#include <iostream>

#include <mutex>

#include <omp.h>


#define WIN_CAPT        "capture"

#define WIN_PROC        "process"

#define WIN_DISP        "display"


using namespace cv;

using namespace std;


Mat vcap;

Mat vproc;

Mat vdisp;


VideoCapture cap;


std::mutex mproc;

std::mutex mdisp;


void init_wiringpi()

{

}


void init_video()

{

        cap.open(0);

        if(cap.isOpened())

        {

                cap.set(CV_CAP_PROP_FRAME_WIDTH, 320);

                cap.set(CV_CAP_PROP_FRAME_HEIGHT, 240);

        }

}


void video_capture()

{

        mproc.lock();

                cap.read(vcap);

               imshow(WIN_CAPT, vcap);

        mproc.unlock();

}


void video_process()

{

        mproc.lock();

                vcap.copyTo(vproc);

        mproc.unlock();

        imshow(WIN_PROC, vproc);

}


void video_display()

{

        mdisp.lock();

                vproc.copyTo(vdisp);

        mdisp.unlock();

        imshow(WIN_DISP, vdisp);

}


int main(int argc, char **argv)

{

        init_wiringpi();

        init_video();


        namedWindow(WIN_CAPT, WINDOW_AUTOSIZE );

        namedWindow(WIN_PROC, WINDOW_AUTOSIZE );


        for(;;)

        {

                #pragma omp parallel sections

                {

                        #pragma omp section

                        {

                                video_capture();

                        }

                        #pragma omp section

                        {

                                video_process();

                        }

                }


                if(waitKey(30) >= 0) break;

        }


        return 0;

} 


아무튼.. 멀티프로세스로 돌아가는 가는데

$ pstree

     ├─sshd─┬─sshd───sshd───bash───cvmp.o───3*[{cvmp.o}]

     │      └─sshd───sshd───bash───pstree


htop 상으로는 그닥.. 분리되는 기분이 안든다고 해야하나...?

top으로 보면 조금 분리되서 cpu를 잡아먹는거 같긴하다.

$ top

top - 11:42:15 up  2:32,  2 users,  load average: 0.62, 0.24, 0.16

Tasks: 111 total,   2 running, 109 sleeping,   0 stopped,   0 zombie

%Cpu0  : 45.3 us,  4.3 sy,  0.0 ni, 47.0 id,  0.0 wa,  0.0 hi,  3.3 si,  0.0 st

%Cpu1  : 11.0 us,  0.3 sy,  0.0 ni, 88.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st

%Cpu2  : 33.1 us,  1.4 sy,  0.0 ni, 65.5 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st

%Cpu3  :  4.0 us,  0.0 sy,  0.0 ni, 95.7 id,  0.0 wa,  0.0 hi,  0.3 si,  0.0 st

KiB Mem:    883160 total,   182500 used,   700660 free,    19316 buffers

KiB Swap:   102396 total,        0 used,   102396 free,   102840 cached


그나저나 mutex가 제대로 되는진 어떻게 검증하지? ㅠㅠ



+

[링크 : http://what-the-pixel.blogspot.kr/2013/05/getting-started-with-openmp.html]

'Programming > openCV' 카테고리의 다른 글

opencv rtsp  (0) 2016.07.13
openMP + openCV 실패한 이유가..  (0) 2015.11.27
휴 모멘트?  (0) 2015.10.20
opencv 카메라 왜곡 수정  (0) 2015.10.20
opencv sift surf  (0) 2015.10.20
Posted by 구차니
Programming/openCV2015. 10. 20. 17:21

hue moment로

hue의 유사값을 찾는것으로 생각된다..



모멘트를 계산하는 효과적인 방법 중 하나는 휴모멘트를 이용하는 것인데

1. 먼저 cvFindContours() 로 contours를 구하고

2. cvContourMoments()로 CvMoments구조체를 만든 후 

3. cvGetHuMoments()로 cvHuMoments구조체를 만든다. 

4. 그리고 cvHuMoments.hu1(hu2...) 식으로 접근하여 휴 모멘트를 구한다.


double cvMatchShapes(

 const void* object1,                       //그레이 스케일 영상 || contours

 const void* object2,                       //그레이 스케일 영상 || contours

 int method,

 double parameter=0;                       //무조건 0 (사용X)

);

[링크 : http://blog.naver.com/cyber3208/60163282137]

[링크 : http://lueseypid.tistory.com/88]


+

[링크 : http://docs.opencv.org/2.4.10/doc/tutorials/imgproc/shapedescriptors/moments/moments.html]

[링크 : http://docs.opencv.org/master/d0/d49/tutorial_moments.html]

'Programming > openCV' 카테고리의 다른 글

openMP + openCV 실패한 이유가..  (0) 2015.11.27
openMP + openCV 미스테리..  (0) 2015.11.09
opencv 카메라 왜곡 수정  (0) 2015.10.20
opencv sift surf  (0) 2015.10.20
시야각 내 각도 계산  (0) 2015.10.14
Posted by 구차니
Programming/openCV2015. 10. 20. 16:47

이전 라즈베리 파이에서 클릭한 위치로 한방에 못가는게

각도의 오차냐.. 아니면 카메라에 의한 오차냐라는게 확실치는 않지만

학습을 넣어서 클릭시 그 지점으로 가는 거리 오차를 줄여야 겠다고 생각은 했지만..


다시 생각해보니 카메라의 왜곡에 의한 문제로 생각이 된다.

이걸 학습으로 커버할 것이냐.. 아니면 영상을 복원해서 오차를 줄일것이냐 고민이로다....

(그래봤자 결국은 학습은 들어가야 하나...)


[링크 : http://darkpgmr.tistory.com/31]

[링크 : http://darkpgmr.tistory.com/32]

[링크 : http://darkpgmr.tistory.com/37]


[링크 : http://docs.opencv.org/doc/tutorials/calib3d/camera_calibration/camera_calibration.html]

    [링크 : http://docs.opencv.org/_downloads/pattern.png] 캘리브레이션 체크보드 패턴

    [링크 : http://docs.opencv.org/_downloads/acircles_pattern.png캘리브레이션 원형 패턴


---

음.. 옆으로는 크랍한거 같은데..

아무튼 수직 방향에 대해서는 저런식으로 왜곡된걸 보정하면 된다~ 라는 느낌?


[링크 : http://www.rcgroups.com/forums/attachment.php?attachmentid=6517867]


프로그램 사용해서 이렇게 만든 듯

원래대로 왜곡 되지 않은 어안렌즈라면 사각형의 검은색이 되겠지


[링크 : http://www.fredmiranda.com/forum/topic/1071605]

    [링크 : http://img831.imageshack.us/img831/4378/img4414rp.jpg] 기하 조정?

    [링크 : http://img585.imageshack.us/img585/259/img4414rc2krr.jpg] 크랍?


'Programming > openCV' 카테고리의 다른 글

openMP + openCV 미스테리..  (0) 2015.11.09
휴 모멘트?  (0) 2015.10.20
opencv sift surf  (0) 2015.10.20
시야각 내 각도 계산  (0) 2015.10.14
openCV + openMP 합치는게 잘 안되네?  (0) 2015.10.11
Posted by 구차니
Programming/openCV2015. 10. 20. 16:37

SIFT (Scale-invariant feature transform)

PCA-SIFT (Principle Component Analysis)

SURF (Speeded Up Robust Features)

FLANN (Fast Library for Approximate Nearest Neighbors)

---

opencv 3.0.0 문서중 sift 관련

[링크 : http://docs.opencv.org/master/da/df5/tutorial_py_sift_intro.html]


FLANN stands for Fast Library for Approximate Nearest Neighbors

[링크 : http://docs.opencv.org/master/dc/dc3/tutorial_py_matcher.html]


sift 예제

[링크 : http://thinkpiece.tistory.com/246]


nonfree에 속해있는 모듈이다..

[링크 : http://docs.opencv.org/2.4.1/modules/nonfree/doc/feature_detection.html]

[링크 : http://docs.opencv.org/2.4.1/modules/nonfree/doc/nonfree.html]


SIFT(Scale-invariant feature transform), Lowe, 2004

PCA-SIFT(Principle Component Analysis), Page on y.ke, 2004

SURF(Speeded Up Robust Features), Bay, 2006

[링크 : https://www.quora.com/.../Difference-between-SURF-and-SIFT-where-and-when-to-use-this-algo]

[링크 : http://stackoverflow.com/questions/11172408/surf-vs-sift-is-surf-really-faster]


SIFT는 기본적으로 특징점 주변의 로컬한 gradient 분포특성(밝기 변화의 방향 및 밝기 변화의 급격한 정도)을 표현하는 feature이다. SIFT를 포함한 SURF, ORB 등의 local feature들은 대상의 크기변화, 형태변화, 방향(회전)변화에 강인하면서도 구분력이 뛰어난 어찌보면 서로 상충되는 목표를 동시에 만족시키고자 개발된 것들로서 통상적으로 원래 물체의 기하학적 정보는 무시하고 특징점 단위로 혹은 코드북(code book) 단위로 매칭을 수행한다.

[링크 : http://darkpgmr.tistory.com/116]


surf 예제

[링크 : http://www.haenaki.com/141]

'Programming > openCV' 카테고리의 다른 글

휴 모멘트?  (0) 2015.10.20
opencv 카메라 왜곡 수정  (0) 2015.10.20
시야각 내 각도 계산  (0) 2015.10.14
openCV + openMP 합치는게 잘 안되네?  (0) 2015.10.11
opencv 마우스 이벤트와 빠르게 그리기  (0) 2015.10.05
Posted by 구차니