ページ更新: 2016-12-26 (月) (664日前)

(2010-04-06)

OpenCV (Open Computer Vision Library) についてのメモなど。

目次

[編集]

概要 #

  • 2010-04-06 時点での最新版は、2.1.0 (2010-04-06 リリース)。
  • その前のバージョンは直近のものから順に 2.0.0a, 1.1pre1, 1.0
  • C/C++ で使用できる。他に、Python と Octave のバインディングが標準で用意されている。
  • プラットフォームは Windows, UNIX, MacOS X
  • 並列処理ライブラリにも対応している:
    • OpenCV 2.0まで :OpenMP
    • OpenCV 2.1以後:Intel Threading Building Blocks (TBB)
[編集]

情報源 #

(2012-07-17, 2010-08-16)

  • opencv.jp
    • マニュアルの日本語訳やサンプルコード
    • Tips | opencv.jp
      • OpenCV 2.0のインストール手順 (Windows, Ubuntu)。注意:OpenCV 2.1ではOpenMP→TBB、Python-Swig→新APIに変更
[編集]

Visual Studio 用拡張 #

Image Watch:

NativeViewer:

[編集]

Python 関連 #

(2010-04-20)

numpy

PIL

[編集]

他の言語とのbinding #

[編集]

OpenCV demonstrator (GUI) (2015-12-19) #

[編集]

Ceemple (2014-09-05) #

[編集]

OpenCV 3.x.x #

[編集]

OpenCV 2.4.x #

  • 2015-02-26 OpenCV 2.4.11

OpenCV 2.4.3:

  • 2012-10-25 OpenCV v2.4.3 is under way | OpenCV
  • 2012-10-25 OpenCV : Message: OpenCV 2.4.3rc is out!
    • 「* Much better performance on many-core systems out of the box. You do not need TBB anymore on MacOSX, iOS and Windows. BTW, the binary package for Windows is now built without TBB support. Libraries and DLLs for Visual Studio 2010 use the Concurrency framework.」とある。
    • Concurrency framework って、Parallel Patterns Library (PPL) のことかな? (2012-10-29)

OpenCV 2.4.0:

[編集]

OpenCV 2.3.x #

(2011-07-08)

OpenCV 2.3 ブランチの最近の変更履歴 (2011-07-11時点):

C:> svn log -l 8 https://code.ros.org/svn/opencv/branches/2.3/
Error validating server certificate for 'https://code.ros.org:443':
 - The certificate is not issued by a trusted authority. Use the
   fingerprint to validate the certificate manually!
Certificate information:
 - Hostname: *.ros.org
 - Valid: from Thu, 10 Sep 2009 14:16:35 GMT until Tue, 11 Sep 2012 20:05:53 GMT

 - Issuer: Equifax Secure Certificate Authority, Equifax, US
 - Fingerprint: fb:45:70:74:bf:12:94:01:05:23:8d:ee:b2:04:66:d0:f8:9a:e8:d2
(R)eject, accept (t)emporarily or accept (p)ermanently? t
------------------------------------------------------------------------
r5901 | vp153 | 2011-07-07 20:36:40 +0900 (木, 07 7 2011) | 1 line

a few more fixes from Gabor
------------------------------------------------------------------------
r5893 | vp153 | 2011-07-07 03:45:11 +0900 (木, 07 7 2011) | 1 line

possibly fixed problem reported in #1198
------------------------------------------------------------------------
r5876 | vp153 | 2011-07-05 23:28:25 +0900 (火, 05 7 2011) | 1 line

fixed 2 possible build problems (in opencv_gpu & docs) (ticket #1191 + fix from
Steve Macao). removed obsolete stuff from opencv_extra_api.hpp, since with Input
Array/OutputArray the existing C++ API can be successfully wrapped for Python.
------------------------------------------------------------------------
r5868 | vp153 | 2011-07-05 01:33:54 +0900 (火, 05 7 2011) | 1 line

possibly fixed occasional deletion of mymath.sty in the case of in-source builds
 (though, in-source builds are still not recommended) - ticket #1163.
------------------------------------------------------------------------
r5850 | vp153 | 2011-07-04 12:37:13 +0900 (月, 04 7 2011) | 1 line

fixed /incremental linker flag & opencv_ffmpeg.dll target dir in the case of sta
tic libs
------------------------------------------------------------------------
r5848 | vp153 | 2011-07-04 09:35:56 +0900 (月, 04 7 2011) | 1 line

corrected opencv_ffmpeg.dll copying when the target dir does not exists yet
------------------------------------------------------------------------
r5847 | vp153 | 2011-07-04 08:45:35 +0900 (月, 04 7 2011) | 1 line

fix cap_ffmpeg.cpp build when no ffmpeg is found
------------------------------------------------------------------------
r5846 | vp153 | 2011-07-04 08:42:33 +0900 (月, 04 7 2011) | 1 line

fix build on Linux/Mac
------------------------------------------------------------------------
[編集]

OpenCV 2.2.x #

(2010-12-13)

[編集]

OpenCV 2.1.x #

[編集]

OpenCV 祭り #

(2011-03-07)

[編集]

メモ #

[編集]

OpenCV で GPGPU を使う (情報のリンクだけ) #

(2013-12-13), 聞かれて調べたのでメモしておく。

[編集]

OpenCV 2.3.0 #

[編集]

cv::InRange(), cvInRange(), cvInRangeS() の動作が従来と異なるが、マニュアルは従来の仕様のまま → 動作変更は仕様。マニュアルを修正 #

(2011-09-20, 2011-12-02, 2011-12-04)

  • 2011-12-02 バグ報告した: #1500 (cvInRangeS() with different behavior between versions) – OpenCV (Bug #1500)
  • 2011-12-04 仕様であり、Changeset 7041 for trunk – OpenCV にてマニュアルの方を修正したとのこと(rst = reStructuredTextで、マニュアルのHTMLのソースコードに当たる)。以前の仕様の「low <= value < high」で型が8Uのき、value = 255 のピクセルを範囲に含めようとすると high >= 256 、つまり 8U では表せないため、都合が悪い、とのこと。(自分も都合が悪い、と思っていて、たので、仕様が変更されたこと自体は歓迎している)

(まだ試していないが) cvInRange, cv::inRange を使ってる箇所は CV_MAJOR_VERSION, CV_MINOR_VERSION, CV_SUBMINOR_VERSION, CV_VERSION を使って分けておくか。

#if (CV_MAJOR_VERSION == 1) || (CV_MAJOR_VRSION == 2 && CV_MINOR_VERSION <= 2)
// 古い仕様
#else
// 新しい仕様
#endif

OpenCV 2.1.0 と 2.3.0 で、cvInRangeS() の動作が異なっている。

  • 従来: 範囲指定: lower <= x < upper
  • リビジョン4885以後: 範囲指定: lower <= x <= upper (不等号が両方とも「<=」)
    • ぶっちゃけ、この仕様の方が使いやすい。でもマニュアルには従来の仕様が記載されている。

従来の動作が仕様に合致していると思う。 なお、この件は、opencv-users | Mailing List ArchiveOpenCV Issue Tracker には見当たらないようだ。

再現用コード:

  • コンパイラはいずれも Visual Studio 2008 SP1 Standard を使用した
  • OpenCV 2.1.0 は、OpenCV-2.1.0-win.zip を自分でビルドしたもの (#memo-OpenCV-2-1-cvLoadImage)
  • OpenCV 2.2.0 は、OpenCV-2.2.0-win.zip を自分でビルドしたもの
  • OpenCV 2.3.0 は、バイナリ版 OpenCV-2.3.0-win-superpack.exe を使用
  • OpenCV 2.3.1 は、バイナリ版 OpenCV-2.3.1-win-superpack.exe を使用
#if 1 // OpenCV 2.1.0
  #include <opencv/cv.h>
  #include <opencv/cvver.h>
#else // OpenCV 2.2 or later
  #include <opencv2/core/core_c.h>
  #include <opencv2/core/version.hpp>
#endif

#include <stdio.h>

int
main(int, char*[]) {
    printf("CV_VERSION = %s\n", CV_VERSION);

    CvSize size = cvSize(1, 5);
    IplImage* src = cvCreateImage(size, IPL_DEPTH_8U, 1);
    IplImage* dst = cvCreateImage(size, IPL_DEPTH_8U, 1);
    
    // 200 ... 204 をセットする
    for (int y = 0; y < size.height; ++y) {
        cvSet2D(src, y, 0, cvScalar(200 + y));
    }

    // マニュアルどおりであれば、201<= value < 203 の部分だけ 255 がセットされ、それ以外は 0 がセットされるはず。
    cvInRangeS(src, cvScalar(201), cvScalar(203), dst);

    printf("src: ");
    for (int y = 0; y < size.height; ++y) {
        printf("%3d ", (int)cvGet2D(src, y, 0).val[0]);
    }
    printf("\n");

    printf("dst: ");
    for (int y = 0; y < size.height; ++y) {
        printf("%3d ", (int)cvGet2D(dst, y, 0).val[0]);
    }
    printf("\n");

    cvReleaseImage(&dst);
    cvReleaseImage(&src);

    return 0;
}

結果:

CV_VERSION = 2.1.0
src: 200 201 202 203 204
dst:   0 255 255   0   0
                 ---
CV_VERSION = 2.2.0
src: 200 201 202 203 204
dst:   0 255 255   0   0
                 ---
CV_VERSION = 2.3.0
src: 200 201 202 203 204
dst:   0 255 255 255   0
                 ===
CV_VERSION = 2.3.1
src: 200 201 202 203 204
dst:   0 255 255 255   0
                 ===

ソースコードリポジトリを調べたところ、modules/core/src/arithm.cpp の チェンジセット 4885 で、この変更が行われていた。 (チェンジセット 4885 以後が含まれるのは、OpenCV 2.3.0 と 2.3.1)

このチェンジセット 4885 は、/branches/2.2 には含まれず、/tags/2.3.0 と /tags/2.3.1 に含まれている。

OpenCV 2.3.1 に含まれるテストコード opencv/modules/core/test/test_arithm.cpp でも、InRange を「a <= v <= b」としてテストしているようだ。

[編集]

OpenCV 2.2.0 #

(2010-12-26)

Windows版のメモ

  • デフォルトのインストール先など
    • C:\OpenCV2.2
    • C:\OpenCV2.2\include
    • C:\OpenCV2.2\lib
  • Visual Studio 2010
[編集]

Python (Windows) #

Numpy が必須である。(インストールされていない場合、「import cv」で例外が発生する)

  • 「C:\OpenCV2.2\Python2.7\Lib\site-packages\*」を「C:\Python27\Lib\site-packages」にコピー

LoadImageでJPEG画像を表示してみた:

C:> cd c:\OpenCV2.2\sample\c
C:> dir /b *.jpg
airplane.jpg
baboon.jpg
baboon200.jpg
baboon200_rotated.jpg
cat.jpg
fruits.jpg
lena.jpg
one_way_train_0000.jpg
one_way_train_0001.jpg
stuff.jpg

C:> c:\python27\python
Python 2.7.1 (r271:86832, Nov 27 2010, 18:30:46) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>> import cv
>>> help(cv.LoadImage)
Help on built-in function LoadImage in module cv:

LoadImage(...)
    LoadImage(filename [, iscolor]) -> None

>>> img = cv.LoadImage('cat.jpg')
>>> cv.NamedWindow('cat')     ★ウィンドウが表示される
>>> cv.ShowImage('cat', img)  ★ウィンドウが「応答なし」になる
>>> cv.WaitKey()              ★ウィンドウに画像が表示される
13                            ★リターンキーを押した
>>> cv.DestroyWindow('cat')
>>> ^Z
C:>
[編集]

OpenCV 2.1.0 #

[編集]

インストール #

インストールには OpenCV-2.1.0-win32-vs2008.exe を用いた。

メモ

  • ユーザーPATHへの追加を選択した。
    • 後で、適宜 OpenCV 2.1/2.0/1.1 のうち1つを切り替えて使う。
  • あらかじめ、Python 2.6.x http://www.python.org をインストールした。
  • Python用ライブラリを手動でコピーした
    • C:\OpenCV2.1\Python2.6\Lib\site-packages\cv.lib と cv.pyd を、C:\Python26\Lib\site-packages\ にコピー

opencv2.1.0-01.png

opencv2.1.0-02.png

opencv2.1.0-03.png

opencv2.1.0-04.png

opencv2.1.0-05.png

[編集]

Python で画像を読み込んで表示してみる #

(2010-04-11)

Pytyon で cv モジュールを読み込んでみる……OK(エラーが発生しない):

C:\> python -V
Python 2.6.5
 
C:\> python -c "import cv"

C:\>

画像を読み込んで、表示してみる……OK:

# -*- coding: UTF-8 -*-
import cv

img = cv.LoadImage('c:/OpenCV2.1/samples/c/lena.jpg')

cv.NamedWindow('Example1')
cv.ShowImage('Example1', img)
cv.WaitKey()

cv.DestroyWindow('Example1')
[編集]

Python のサンプルコードを調べてみる #

(2010-04-11)

Python用のサンプルコードの実行に必要な物を調べてみる。

C:\OpenCV2.1\samples\python> findstr "import" *.py
camera.py:import cv
camshift.py:import cv
chessboard.py:import cv
chessboard.py:import sys
chessboard.py:import urllib2
contours.py:# import the necessary things for OpenCV
contours.py:import cv
convexhull.py:# import the necessary things for OpenCV
convexhull.py:import cv
convexhull.py:import random
cv20squares.py:import math
cv20squares.py:import cv
cvutils.py:import cv
cvutils.py:import urllib2
cvutils.py:from sys import argv
delaunay.py:import cv
delaunay.py:import random
demhist.py:import cv
demhist.py:import sys
demhist.py:import urllib2
dft.py:import cv
dft.py:import sys
dft.py:import urllib2
distrans.py:import sys
distrans.py:import cv
distrans.py:import urllib2
drawing.py:from random import Random
drawing.py:import colorsys
drawing.py:import cv
edge.py:import sys
edge.py:import urllib2
edge.py:import cv
facedetect.py:import sys
facedetect.py:import cv
facedetect.py:from optparse import OptionParser
fback.py:from cv import *
ffilldemo.py:import sys
ffilldemo.py:import random
ffilldemo.py:import urllib2
ffilldemo.py:import cv
fitellipse.py:import sys
fitellipse.py:import urllib2
fitellipse.py:import random
fitellipse.py:import cv
houghlines.py:import sys
houghlines.py:from math import sin, cos, sqrt, pi
houghlines.py:import cv
houghlines.py:import urllib2
inpaint.py:import urllib2
inpaint.py:import sys
inpaint.py:import cv
kalman.py:import urllib2
kalman.py:import cv
kalman.py:from math import cos, sin, sqrt
kalman.py:import sys
kmeans.py:import urllib2
kmeans.py:import cv
kmeans.py:from random import randint
laplace.py:import urllib2
laplace.py:import cv
laplace.py:import sys
lkdemo.py:import sys
lkdemo.py:# import the necessary things for OpenCV
lkdemo.py:import cv
logpolar.py:import sys
logpolar.py:import urllib2
logpolar.py:import cv
minarea.py:import urllib2
minarea.py:import cv
minarea.py:from random import randint
minidemo.py:import cv
morphology.py:import sys
morphology.py:import urllib2
morphology.py:import cv
motempl.py:import urllib2
motempl.py:import sys
motempl.py:import time
motempl.py:from math import cos, sin
motempl.py:import cv
numpy_array.py:import urllib2
numpy_array.py:import sys
numpy_array.py:import cv
numpy_array.py:import numpy
peopledetect.py:import sys
peopledetect.py:from cv import *
pyramid_segmentation.py:import cv
squares.py:import urllib2
squares.py:from math import sqrt
squares.py:import cv
watershed.py:import urllib2
watershed.py:import sys
watershed.py:import cv

URLを調べたところ、画像は全て C:\OpenCV2.1\samples\c\ や C:\OpenCV2.1\doc\pics に存在している。

C:\OpenCV2.1\samples\python> findstr http *.py
chessboard.py:        url = 'https://code.ros.org/svn/opencv/trunk/opencv/samples/c/left01.jpg'
cvutils.py:            urlbase = 'https://code.ros.org/svn/opencv/trunk/opencv/samples/c/'
demhist.py:        # (http://visca.com/ffactory/archives/5-99/msg00021.html)
demhist.py:        url = 'https://code.ros.org/svn/opencv/trunk/opencv/samples/c/baboon.jpg'
dft.py:        url = 'https://code.ros.org/svn/opencv/trunk/opencv/samples/c/baboon.jpg'
distrans.py:        url = 'https://code.ros.org/svn/opencv/trunk/opencv/samples/c/stuff.jpg'
edge.py:        url = 'https://code.ros.org/svn/opencv/trunk/opencv/samples/c/fruits.jpg'
ffilldemo.py:        url = 'https://code.ros.org/svn/opencv/trunk/opencv/samples/c/fruits.jpg'
fitellipse.py:        url = 'https://code.ros.org/svn/opencv/trunk/opencv/samples/c/stuff.jpg'
houghlines.py:        url = 'https://code.ros.org/svn/opencv/trunk/opencv/doc/pics/building.jpg'
inpaint.py:        url = 'https://code.ros.org/svn/opencv/trunk/opencv/samples/c/fruits.jpg'
logpolar.py:        url = 'https://code.ros.org/svn/opencv/trunk/opencv/samples/c/fruits.jpg'
morphology.py:        url = 'https://code.ros.org/svn/opencv/trunk/opencv/samples/c/fruits.jpg'
numpy_array.py:# SRGB-linear conversions using NumPy - see http://en.wikipedia.org/wiki/SRGB
numpy_array.py:        url = 'https://code.ros.org/svn/opencv/trunk/opencv/samples/c/lena.jpg'
watershed.py:        url = 'https://code.ros.org/svn/opencv/trunk/opencv/samples/c/fruits.jpg'

以下のように、urllib.urlopen(url).read() を file(..., 'rb').read() に置き換えると、インターネットへのアクセスなしで動作した。

  • なお、作業の前に samples に Mercurial (TortoiseHg 1.0.1) でリポジトリを作って保存して、それとのdiffを取った:
C:\OpenCV2.1\samples\python> hg diff -U0
diff -r 864a92f4dd8a python/chessboard.py
--- a/python/chessboard.py	Sun Apr 11 17:07:15 2010 +0900
+++ b/python/chessboard.py	Sun Apr 11 17:34:54 2010 +0900
@@ -13,2 +13,1 @@
-        url = 'https://code.ros.org/svn/opencv/trunk/opencv/samples/c/left01.jpg'
-        filedata = urllib2.urlopen(url).read()
+        filedata = file('../c/left01.jpg', 'rb').read()
diff -r 864a92f4dd8a python/demhist.py
--- a/python/demhist.py	Sun Apr 11 17:07:15 2010 +0900
+++ b/python/demhist.py	Sun Apr 11 17:34:54 2010 +0900
@@ -71,2 +71,1 @@
-        url = 'https://code.ros.org/svn/opencv/trunk/opencv/samples/c/baboon.jpg'
-        filedata = urllib2.urlopen(url).read()
+        filedata = file('../c/baboon.jpg', 'rb').read()
diff -r 864a92f4dd8a python/dft.py
--- a/python/dft.py	Sun Apr 11 17:07:15 2010 +0900
+++ b/python/dft.py	Sun Apr 11 17:34:54 2010 +0900
@@ -54,2 +54,1 @@
-        url = 'https://code.ros.org/svn/opencv/trunk/opencv/samples/c/baboon.jpg'
-        filedata = urllib2.urlopen(url).read()
+        filedata = file('../c/baboon.jpg', 'rb').read()
diff -r 864a92f4dd8a python/distrans.py
--- a/python/distrans.py	Sun Apr 11 17:07:15 2010 +0900
+++ b/python/distrans.py	Sun Apr 11 17:34:54 2010 +0900
@@ -45,2 +45,1 @@
-        url = 'https://code.ros.org/svn/opencv/trunk/opencv/samples/c/stuff.jpg'
-        filedata = urllib2.urlopen(url).read()
+        filedata = file('../c/stuff.jpg', 'rb').read()
diff -r 864a92f4dd8a python/edge.py
--- a/python/edge.py	Sun Apr 11 17:07:15 2010 +0900
+++ b/python/edge.py	Sun Apr 11 17:34:54 2010 +0900
@@ -35,2 +35,1 @@
-        url = 'https://code.ros.org/svn/opencv/trunk/opencv/samples/c/fruits.jpg'
-        filedata = urllib2.urlopen(url).read()
+        filedata = file('../c/fruits.jpg', 'rb').read()
diff -r 864a92f4dd8a python/ffilldemo.py
--- a/python/ffilldemo.py	Sun Apr 11 17:07:15 2010 +0900
+++ b/python/ffilldemo.py	Sun Apr 11 17:34:54 2010 +0900
@@ -76,2 +76,1 @@
-        url = 'https://code.ros.org/svn/opencv/trunk/opencv/samples/c/fruits.jpg'
-        filedata = urllib2.urlopen(url).read()
+        filedata = file('../c/fruits.jpg', 'rb').read()
diff -r 864a92f4dd8a python/fitellipse.py
--- a/python/fitellipse.py	Sun Apr 11 17:07:15 2010 +0900
+++ b/python/fitellipse.py	Sun Apr 11 17:34:54 2010 +0900
@@ -86,2 +86,1 @@
-        url = 'https://code.ros.org/svn/opencv/trunk/opencv/samples/c/stuff.jpg'
-        filedata = urllib2.urlopen(url).read()
+        filedata = file('../c/stuff.jpg', 'rb').read()
diff -r 864a92f4dd8a python/houghlines.py
--- a/python/houghlines.py	Sun Apr 11 17:07:15 2010 +0900
+++ b/python/houghlines.py	Sun Apr 11 17:34:54 2010 +0900
@@ -17,2 +17,1 @@
-        url = 'https://code.ros.org/svn/opencv/trunk/opencv/doc/pics/building.jpg'
-        filedata = urllib2.urlopen(url).read()
+        filedata = file('../../doc/pics/building.jpg', 'rb').read()
diff -r 864a92f4dd8a python/inpaint.py
--- a/python/inpaint.py	Sun Apr 11 17:07:15 2010 +0900
+++ b/python/inpaint.py	Sun Apr 11 17:34:54 2010 +0900
@@ -30,2 +30,1 @@
-        url = 'https://code.ros.org/svn/opencv/trunk/opencv/samples/c/fruits.jpg'
-        filedata = urllib2.urlopen(url).read()
+        filedata = file('../c/fruits.jpg', 'rb').read()
diff -r 864a92f4dd8a python/logpolar.py
--- a/python/logpolar.py	Sun Apr 11 17:07:15 2010 +0900
+++ b/python/logpolar.py	Sun Apr 11 17:34:54 2010 +0900
@@ -26,2 +26,1 @@
-        url = 'https://code.ros.org/svn/opencv/trunk/opencv/samples/c/fruits.jpg'
-        filedata = urllib2.urlopen(url).read()
+        filedata = file('../c/fruits.jpg', 'rb').read()
diff -r 864a92f4dd8a python/morphology.py
--- a/python/morphology.py	Sun Apr 11 17:07:15 2010 +0900
+++ b/python/morphology.py	Sun Apr 11 17:34:54 2010 +0900
@@ -34,2 +34,1 @@
-        url = 'https://code.ros.org/svn/opencv/trunk/opencv/samples/c/fruits.jpg'
-        filedata = urllib2.urlopen(url).read()
+        filedata = file('../c/fruits.jpg', 'rb').read()
diff -r 864a92f4dd8a python/numpy_array.py
--- a/python/numpy_array.py	Sun Apr 11 17:07:15 2010 +0900
+++ b/python/numpy_array.py	Sun Apr 11 17:34:54 2010 +0900
@@ -25,2 +25,1 @@
-        url = 'https://code.ros.org/svn/opencv/trunk/opencv/samples/c/lena.jpg'
-        filedata = urllib2.urlopen(url).read()
+        filedata = file('../c/lena.jpg', 'rb').read()
diff -r 864a92f4dd8a python/watershed.py
--- a/python/watershed.py	Sun Apr 11 17:07:15 2010 +0900
+++ b/python/watershed.py	Sun Apr 11 17:34:54 2010 +0900
@@ -30,2 +30,1 @@
-        url = 'https://code.ros.org/svn/opencv/trunk/opencv/samples/c/fruits.jpg'
-        filedata = urllib2.urlopen(url).read()
+        filedata = file('../c/fruits.jpg', 'rb').read()

このパッチを当てるには、patch コマンドを用いる (また、Mercurialに格納しているのであれば、hg patch パッチファイル名」でできる)。以下では Cygwin 1.7.x の patch コマンドを用いている:

/cygdrive/c/OpenCV2.1/samples$ patch -p1 < localfile.patch
(Stripping trailing CRs from patch.)
patching file python/chessboard.py
(Stripping trailing CRs from patch.)
patching file python/demhist.py
(Stripping trailing CRs from patch.)
patching file python/dft.py
(Stripping trailing CRs from patch.)
patching file python/distrans.py
(Stripping trailing CRs from patch.)
patching file python/edge.py
(Stripping trailing CRs from patch.)
patching file python/ffilldemo.py
(Stripping trailing CRs from patch.)
patching file python/fitellipse.py
(Stripping trailing CRs from patch.)
patching file python/houghlines.py
(Stripping trailing CRs from patch.)
patching file python/inpaint.py
(Stripping trailing CRs from patch.)
patching file python/logpolar.py
(Stripping trailing CRs from patch.)
patching file python/morphology.py
(Stripping trailing CRs from patch.)
patching file python/numpy_array.py
(Stripping trailing CRs from patch.)
patching file python/watershed.py

numpy をインストールしてみたが、サンプルコード numpy_array.py は TypeError 例外が発生した:

C:\OpenCV2.1\samples\python> numpy_array.py
Traceback (most recent call last):
  File "C:\OpenCV2.1\samples\python\numpy_array.py", line 34, in <module
    n = numpy.asarray(img0) / 255.0
TypeError: unsupported operand type(s) for /: 'cv.cvmat' and 'float'
[編集]

cvLoadImage のバグ #

(2010-06-10)

多少大きめのBMPを読み込めないバグ。クラッシュしたり、異常終了したりする。

(手元だと幅1369以上だったり、幅2825以上だったり)。

要するに、メモリ確保をミスってるようだ…… Valgrid とか electricfence とかで発見できるような気がする。

バグとして登録されてたので、以下のチケットを見て修正して、ライブラリをコンパイルして回避した。

[編集]

Python SnakeImageのバグ #

[編集]

OpenCV 2.0.0a #

[編集]

インストール #

メモ

  • ユーザーPATHへの追加を選択した。
    • 後で、適宜 OpenCV 2.1/2.0/1.1 のうち1つを切り替えて使う。

opencv2.0.0a-01.png

opencv2.0.0a-02.png

opencv2.0.0a-03.png

opencv2.0.0a-04.png

opencv2.0.0a-05.png

[編集]

OpenCV 1.1pre #

[編集]

インストール #

メモ

  • インストーラーはあるが、アンインストール機能がない。
  • インストール先を、Open CV 2.0.0a以後と同様に、「C:\OpenCV 1.1」にした。
  • プログラムメニューの名称もOpen CV 2.0.0a以後と同様に、「OpenCV 1.1pre」にした。
  • システムPATHへの追加はおこなわず、インストール後に手動でユーザーPATHに追加した。
    • 後で、適宜 OpenCV 2.1/2.0/1.1 のうち1つを切り替えて使う。
  • インストーラーがインストールした以下のファイル (Python用ライブラリ) を手動で削除
  • C:\Python26\Lib\site-packages\opencv
  • C:\Python26\Lib\site-packages\OpenCV_Python_Wrapper-0.0-py2.6.egg-info

opencv1.1pre-install-01.png

opencv1.1pre-install-02.png

opencv1.1pre-install-03.png

opencv1.1pre-install-04.png