ラベル 画像処理 の投稿を表示しています。 すべての投稿を表示
ラベル 画像処理 の投稿を表示しています。 すべての投稿を表示

2009年6月7日日曜日

OpenCV 画素へのアクセス

またまたOpenCVの記事。基本的な所はWeb上で参照できるようにしたい。
と言うことで画素へのアクセスについて。

基本読み込んだ画像がどんな形式であるかが、問題になってくる。
OpenCVでは8bit,16bit,32bit,(一応)64bitに対応している。
その対応によってIPL_DEPTH_XXXとなるわけです。
8U,8S,16Uやらです。
32はRGB,8は濃淡である。で64は一応アルファレンダリング(透明度)にまで対応してくる。
16は・・・医療画像とかかな?(医療画像はたいてい2bit/pixelで表示される。)
でこのOpenCV非常に多くのアルゴリズム、お手軽に実装できる表示機能などあるが、16bitにはほとんど対応していません。と言うわけでもし16bitを対象に処理するなら、16bitから8bitに変換し、処理した後8bitから16bitに変更しなければならない。

まぁ以上は前置きなわけですが、その後の画素へのアクセスの仕方をまとめておきたいと思います。

(x,y)の画素値を取得したい場合
IplImage *image = cvLoadImage("test.png");
unsigned char b = static_cast< unsiged char> (image->imageData[(y * image->widthStep + x)
* image->nChannel]);
unsigned char g = static_cast< unsiged char>(image->imageData[(y * image->widthStep + x +)
* image->nChannel + 1]);
unsigned char r = static_cast< unsiged char> (image->imageData[(y * image->widthStep + x)
* image->nChannel + 2]);


である。jpg画像なんで基本3チャンネルRGBを対象としている。リトルエンディアン方式なんで注意

7/3修正しました。

2009年6月6日土曜日

OpenCV

画像処理の勉強をしようと思いまして。WindowsにOpenCVを導入することにしました。
OpenCVとはインテルが提供している画像ライブラリのことです。
OpenCV
現在 1.1preがリリースされていますが、preとか怖いので1.0の方を使ってます。
binのパスを通して、libファイルとインクルードファイルのパスを通して。はい出来上がり。
とりあえず描画やらがお手軽なので勉強代わりに使ってみましょう。