スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

画像処理の初歩(OpenCV使用)

下のアゲハの画像を元に、色相変換、2値変換、エッジ検出を行う。

butterfly.jpg


【色相変換】
一度HSV形式に変換し、Hを変更後、RGB形式に戻して画像を保存する。

img_hsv = cvCreateImage(cvGetSize(img), IPL_DEPTH_8U, 3);
img_h = cvCreateImage(cvGetSize(img), IPL_DEPTH_8U, 1);
img_s = cvCreateImage(cvGetSize(img), IPL_DEPTH_8U, 1);
img_v = cvCreateImage(cvGetSize(img), IPL_DEPTH_8U, 1);
img_dst = cvCreateImage(cvGetSize(img), IPL_DEPTH_8U, 3);
double val=60.0; // 色相の変換量
cvCvtColor(img, img_hsv, CV_BGR2HSV); // HSVに変更
cvSplit(img_hsv, img_h, img_s, img_v, NULL); // H, S, Vチャネルに分離
for(int j=0; jheight; j++){
for(int i=0; iwidth; i++){
double hue=cvGetReal2D(img_h, j, i);
double newval = hue+val;
newval = (int)newval%180;
cvSetReal2D(img_h, j, i, newval);
}
}
cvMerge(img_h, img_s, img_v, NULL, img_dst); // H, S, Vを結合
cvCvtColor(img_dst, img_dst, CV_HSV2BGR); // HSVをRGBに変換

butterfly.jpg butterfly_HSVplus30.jpg

butterfly_HSVplus60.jpg butterfly_HSVplus90.jpg

butterfly_HSVplus120.jpg butterfly_HSVplus150.jpg


【2値化】
グレースケールに変換の後、閾値を定めて2値化する。

img_gray = cvCreateImage(cvGetSize(img), IPL_DEPTH_8U, 1);
img_bin = cvCreateImage(cvGetSize(img), IPL_DEPTH_8U, 1);

cvCvtColor(img, img_gray, CV_BGR2GRAY); // モノクロ画像へ変換
cvThreshold(img_gray, img_bin, 128, 255, CV_THRESH_BINARY); // 2値化

butterfly.jpg butterfly_bin.jpg


【エッジ検出】
空間微分を利用して局所最大となるpixelを検出しているらしい。Cannyアルゴリズムというものがあるらしく、これを使うと繋がった線として検出してくるらしい。

img_gray = cvCreateImage(cvGetSize(img), IPL_DEPTH_8U, 1);
img_edge = cvCreateImage(cvGetSize(img), IPL_DEPTH_8U, 1);
cvCvtColor(img, img_gray, CV_BGR2GRAY); // モノクロ画像へ変換
cvCanny(img_gray, img_edge, 80, 120, 3); // エッジ検出

butterfly.jpg butterfly_edge.jpg



Essential OpenCV Programming―With Visual C++ 2008Essential OpenCV Programming―With Visual C++ 2008
(2009/10)
谷尻 豊寿

スポンサーサイト
Profile

zoa

Author:zoa
Metropolis (1927)

Calendar
12 | 2015/01 | 02
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Labels
Admin
Previous Posts
Recent Comments
Recent Trackback
Archive
このページのトップへ
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。