OpenCV と画像操作
- smoothing
- pyramids
opencv_pyramids.cpp - hough transform
opencv_hough.cpp - histgram compare
opencv_histcompare.cpp
前準備
cd /tmp echo download source wget http://www.kkaneko.com/tools/od/data/opencv/opencv_bilateral.cpp wget http://www.kkaneko.com/tools/od/data/opencv/opencv_blur.cpp wget http://www.kkaneko.com/tools/od/data/opencv/opencv_gaussian.cpp wget http://www.kkaneko.com/tools/od/data/opencv/opencv_median.cpp wget http://www.kkaneko.com/tools/od/data/opencv/opencv_pyramids.cpp wget http://www.kkaneko.com/tools/od/data/opencv/opencv_hough.cpp wget http://www.kkaneko.com/tools/od/data/opencv/opencv_histcompare.cpp wget http://www.kkaneko.com/tools/od/data/opencv/opencv_findcontour.cpp wget http://www.kkaneko.com/tools/od/data/opencv/opencv_opencv_backprojexample.cpp wget http://www.kkaneko.com/tools/od/data/opencv/opencv_opencv_calcBackProject_Demo2.cpp # echo compile ... g++ -o opencv_bilateral opencv_bilateral.cpp -I/usr/local/include/opencv2 -I/usr/local/include/opencv -L/usr/local/lib -lopencv_highgui -lopencv_imgproc -lopencv_core g++ -o opencv_blur opencv_blur.cpp -I/usr/local/include/opencv2 -I/usr/local/include/opencv -L/usr/local/lib -lopencv_highgui -lopencv_imgproc -lopencv_core g++ -o opencv_gaussian opencv_gaussian.cpp -I/usr/local/include/opencv2 -I/usr/local/include/opencv -L/usr/local/lib -lopencv_highgui -lopencv_imgproc -lopencv_core g++ -o opencv_median opencv_median.cpp -I/usr/local/include/opencv2 -I/usr/local/include/opencv -L/usr/local/lib -lopencv_highgui -lopencv_imgproc -lopencv_core g++ -o opencv_pyramids opencv_pyramids.cpp -I/usr/local/include/opencv2 -I/usr/local/include/opencv -L/usr/local/lib -lopencv_highgui -lopencv_imgproc -lopencv_core g++ -o opencv_hough opencv_hough.cpp -I/usr/local/include/opencv2 -I/usr/local/include/opencv -L/usr/local/lib -lopencv_highgui -lopencv_imgproc -lopencv_core g++ -o opencv_histcompare opencv_histcompare.cpp -I/usr/local/include/opencv2 -I/usr/local/include/opencv -L/usr/local/lib -lopencv_highgui -lopencv_imgproc -lopencv_core g++ -o opencv_findcontour opencv_findcontour.cpp -I/usr/local/include/opencv2 -I/usr/local/include/opencv -L/usr/local/lib -lopencv_highgui -lopencv_imgproc -lopencv_core # g++ -o opencv_backprojexample opencv_backprojexample.cpp -I/usr/local/include/opencv2 -I/usr/local/include/opencv -L/usr/local/lib -lopencv_highgui -lopencv_imgproc -lopencv_core g++ -o opencv_calcBackProject_Demo2 opencv_calcBackProject_Demo2.cpp -I/usr/local/include/opencv2 -I/usr/local/include/opencv -L/usr/local/lib -lopencv_highgui -lopencv_imgproc -lopencv_core
- 平滑化 (smoothing)
cd /tmp ./opencv_bilateral /usr/local/share/OpenCV/samples/c/fruits.jpg hoge.png 100 display hoge.png ./opencv_blur /usr/local/share/OpenCV/samples/c/fruits.jpg hoge.png 10 display hoge.png ./opencv_gaussian /usr/local/share/OpenCV/samples/c/fruits.jpg hoge.png 21 display hoge.png ./opencv_median /usr/local/share/OpenCV/samples/c/fruits.jpg hoge.png 11 display hoge.png
◆ ./opencv_bilateral /usr/local/share/OpenCV/samples/c/fruits.jpg hoge.png 100
◆ ./opencv_blur /usr/local/share/OpenCV/samples/c/fruits.jpg hoge.png 10
◆ ./opencv_gaussian /usr/local/share/OpenCV/samples/c/fruits.jpg hoge.png 21
◆ ./opencv_median /usr/local/share/OpenCV/samples/c/fruits.jpg hoge.png 11
- Image Pyramid
cd /tmp ./opencv_pyramids /usr/local/share/OpenCV/samples/c/fruits.jpg hoge png display hoge.png
- Hough Transform
cd /tmp ./opencv_hough /usr/local/share/OpenCV/samples/c/fruits.jpg hoge.png display hoge.png
- Histgram distance
cd /tmp ./opencv_histcompare /usr/local/share/OpenCV/samples/c/fruits.jpg hoge.png
- finding contours
cd /tmp ./opencv_histcompare /usr/local/share/OpenCV/samples/c/fruits.jpg hoge.png
cd /tmp ./opencv_findcontour /usr/local/share/OpenCV/samples/c/fruits.jpg hoge.jpg 100 display hoge.jpg
- back projection の例(書きかけ)
./opencv_backprojexample /usr/local/share/OpenCV/samples/c/fruits.jpg ./opencv_calcBackProject_Demo2 /usr/local/share/OpenCV/samples/c/fruits.jpg
濃淡画像の2値化 前準備
cd /tmp echo download source wget http://www.kkaneko.com/tools/od/data/opencv/imthresh.cpp # echo compile ... g++ -o imthresh imthresh.cpp -I/usr/local/include/opencv2 -I/usr/local/include/opencv -L/usr/local/lib -lopencv_highgui -lopencv_imgproc -lopencv_core
しきい値で2値化
cd /tmp ./imthresh hoge.jpg hoge2.jpg 100 display hoge2.jpg 100
画像特徴 (image features)
前準備cd /tmp echo download source wget http://www.kkaneko.com/tools/od/data/opencv/opencv_harris.cpp # echo compile ... g++ -o opencv_harris opencv_harris.cpp -I/usr/local/include/opencv2 -I/usr/local/include/opencv -L/usr/local/lib -lopencv_highgui -lopencv_imgproc -lopencv_core g++ -o opencv_harris_points opencv_harris.cpp -DPOINTS -I/usr/local/include/opencv2 -I/usr/local/include/opencv -L/usr/local/lib -lopencv_highgui -lopencv_imgproc -lopencv_core g++ -o opencv_shitomasi opencv_shitomasi.cpp -I/usr/local/include/opencv2 -I/usr/local/include/opencv -L/usr/local/lib -lopencv_highgui -lopencv_imgproc -lopencv_core g++ -o opencv_shitomasi_points opencv_shitomasi.cpp -DPOINTS -I/usr/local/include/opencv2 -I/usr/local/include/opencv -L/usr/local/lib -lopencv_highgui -lopencv_imgproc -lopencv_core g++ -o opencv_surf opencv_surf.cpp -I/usr/local/include/opencv2 -I/usr/local/include/opencv -L/usr/local/lib -lopencv_highgui -lopencv_video -lopencv_objdetect -lopencv_features2d -lopencv_nonfree -lopencv_imgproc -lopencv_legacy -lopencv_core g++ -o opencv_surf_points opencv_surf.cpp -DPOINTS -I/usr/local/include/opencv2 -I/usr/local/include/opencv -L/usr/local/lib -lopencv_highgui -lopencv_video -lopencv_objdetect -lopencv_features2d -lopencv_nonfree -lopencv_imgproc -lopencv_legacy -lopencv_core
Harris Corner Detector 値を 0 から 255 の範囲に正規化したモノクロ画像
cd /tmp ./opencv_harris /usr/local/share/OpenCV/samples/c/fruits.jpg hoge.jpg 2 3 4 display hoge.jpg
Harris Corner Detector で、しきい値180を超える点の (x, y, 値)
cd /tmp ./opencv_harris_points /usr/local/share/OpenCV/samples/c/fruits.jpg 2 3 4 180

cd /tmp ./opencv_shitomasi /usr/local/share/OpenCV/samples/c/fruits.jpg hoge.jpg 1 10 3 4 23 display hoge.jpg
Shi-Tomasi 特徴点 で、しきい値23を超える点の (x, y)
cd /tmp ./opencv_shitomasi_points /usr/local/share/OpenCV/samples/c/fruits.jpg 1 10 3 4 23

cd /tmp ./opencv_surf /usr/local/share/OpenCV/samples/c/fruits.jpg hoge.jpg 400 display hoge.jpg
SURF 特徴点の (x, y, size, angle) (minHessian = 400)
cd /tmp ./opencv_surf_points /usr/local/share/OpenCV/samples/c/fruits.jpg 400
