も出来ちゃう。ほぼ貼り付けるだけでFlashVideoを再生出来ちゃう。
Flexヘルプをご参考に。
リッチクライアントとしての環境は申し分ないのでは。
2007年2月28日
2007年2月27日
おー便利、便利
Flexってすごい便利。というか、コンポーネントがそろってる環境が便利。きっと、RubyとかPythonもかなり効率いい開発が出来そう。何でも勝手にコンポーネントが処理してくれる。
あと、スクリプト言語ってのは使ってると不思議な感覚になる。型宣言してないのにプロパティ使えたりできるしさぁ。C++ならダイナミックキャストを使わないといけないところだけど、普通に使ってる。
GridにXMLをバインディングするので感動した。多分、業務系の人は普通なんだろうけど。。。
2007年2月20日
2007年2月18日
EclipseでHello World
とりあえず、基本の「Hello World」を作成。基本っす、基本。
[ファイル]→[新規]→[Standard Make C Project] を選択でプロジェクト作成。[ファイル]→[新規]→[Source File]で「hello.c」、[ファイル]→[新規]→[File]で「MakeFile」のファイル名でファイルを作成する。
Hello.c
#include "stdio.h"
int main(int argc, char *argv[])
{
printf("Hell, World");
return 0;
}
MakeFile
TARGET = hello01
CFLAGS = -g
OBJS = hello01.o
all : $(TARGET)
$(TARGET) : $(OBJS)
gcc $(OBJS) -o $@
clean :
rm -f $(TARGET).exe $(OBJS)
んでいいみたい。ぜんぜんわからんがこれでいいみたい。
そういえば、VC以外でコンパイルするのも初めて。面倒だなぁ。とりあえずOpenCVをGCCでコンパイルしてみたいものです。
2007年2月14日
2007年2月9日
EclipseでC/C++を使う その2
2007年2月8日
EclipseでC/C++を使う その1
EclipseプラグインのCDT (C/C++ Development Tools) を使えば、EclipseでC/C++が開発できちゃう。CDTは、開発環境のみコンパイル、リンカー、デバッガは別途必要らしいよ。Cygwin または MinGW が使えるらしいんで、MinGWを使うことにします。MinGWはGCCのWindows版。SourceForgeからMinGW、MSYS、GDBをダウンロード。
MinGWのインストールでは、「g++ compiler」のみ選択するのがいいみたい。あと、MinGW、MSYS、GDBのインストール先のパスに空白が含まれるとダメみたい。
MSYSをインストールするとMinGWと連携するためにいくつか入力する必要があります。
Do you have MinGW installed? [yn ]
MinGWをインストールしてる?y + Enterで、
Please answer the following in the form of c:/foo/bar.
Where is your MinGW installation?
インストール先のフォルダを入力する。パスの部分は「\」でなくて「/」で入力してね。間違えると面倒らしい。。。
環境設定のPATHにMinGW、MSYSの「bin」のパスを追加してね。
2007年2月7日
OpenCV第5回 収縮、膨張処理
画像を縮める処理を収縮処理、膨らませる処理を膨張処理。ノイズなんかを取るのにつかう。OpenCVでは
収縮処理:
void cvErode( const CvArr* A, CvArr* C, IplConvKernel* B=0, int iterations=1 );
膨張処理:
void cvDilate( const CvArr* A, CvArr* C, IplConvKernel* B=0, int iterations=1 );
でできる。
Aの画像をBの構造要素を使ってiterations回収縮、または膨張処理を行ってCの画像に入れるってこと。BがNULLの場合は3×3の矩形構造要素。Bって何だろうと思って、ヘルプを見ると、収縮処理の場合、Bの構造要素の中の最小値がCの画素になり、膨張処理の場合は最大値がCの画素になるらしい。ってことは、NULLの場合は、3×3の矩形構造要素になってるけど、設定しだいでは5×5の矩形構造要素、円形構造要素とかにもなりそうな予感。
第四回の画像をそれぞれ1回収縮、膨張処理した結果。
2007年2月6日
OpenCV第4回 閾値処理
いわゆる2値化処理。閾値以上の画素かそれ以外かを2つの値で分ける処理。
では、さっそく。
#include "stdafx.h"
#include "cv.h"
#include "highgui.h"
// argv[1] 入力ファイル名
// argv[2] 閾値
int main( int argc, char** argv )
{
if (argc <= 2)
return 0;
//------------------------------
// 画像読込み
//------------------------------
IplImage* image_load = cvLoadImage(argv[1]);
//------------------------------
// 色変換
//------------------------------
IplImage* image_gray = cvCreateImage
(cvSize(image_load->width, image_load->height)
, IPL_DEPTH_8U, 1);
cvCvtColor(image_load, image_gray, CV_BGR2GRAY);
// 閾値取得
int th = atoi(argv[2]);
//------------------------------
// 閾値処理
//------------------------------
IplImage* image_bin = cvCloneImage(image_gray);
cvThreshold(image_gray, image_bin, th, 255, CV_THRESH_BINARY);
//------------------------------
// 画像表示
//------------------------------
// 読込み画像表示
cvNamedWindow(argv[1], 0);
cvShowImage(argv[1], image_load);
// グレー画像表示
cvNamedWindow("Gray", 0);
cvShowImage("Gray", image_gray);
// 閾値処理画像表示
cvNamedWindow("Threshold", 0);
cvShowImage("Threshold", image_bin);
cvWaitKey();
cvDestroyWindow(argv[1]);
cvDestroyWindow("Gray");
cvDestroyWindow("Threshold");
cvReleaseImage(&image_load);
cvReleaseImage(&image_gray);
cvReleaseImage(&image_bin);
return 0;
}
引数で入力ファイル名と閾値を指定してあげる。
cvCvtColorは、色変換。指定して画像が、カラー画像の場合にグレー画像に変換してあげる。いろいろな色に変換できるようです。ここでは、BGR(カラー画像の場合は青緑赤の順番みたい)からグレースケールに変換してます。本来、色をみて変化する必要があると思います。
cvThresholdで2値化処理。引数は、cvThreshold(元画像、処理画像、閾値、max値、変換方法)。
変換方法は、ヘルプを見ると、
CV_THRESH_BINARY : 閾値より上はmax値,それ以外は0。
CV_THRESH_BINARY_INV : CV_THRESH_BINARYの逆で、閾値より上は0,それ以外はmax値。
CV_THRESH_TRUNC : 閾値より上は閾値,それ以外は元画素。
CV_THRESH_TOZERO : 閾値より上は元画素,それ以外は0。
CV_THRESH_TOZERO_INV : CV_THRESH_TOZEROと逆で、閾値より上は0,それ以外は元の画素。
実行結果を表示。OpenCVのサンプル画像を使ってます。
左から、元画像、グレースケール変換画像、閾値処理画像(閾値128)。
2007年2月3日
Eclipseはじめました
FlexでEclipseを使用してみてから、使ってみたいと思ってたEclipse。ちょっと使ってみます。何回かインストールしてみたことはあったけど、再び挑戦!
どうやら、C/C++もEclipseを使って開発できるみたい。
ここからダウンロード。最新版は3.2.1。日本語化はここから。日本語はNLpack1かな。両方を解答して、NLpack1をコピーするだけ。
Paint.Net
Microsoftの支援を受けて開発されているPaint.netがバージョンアップらしい。って初めて知ったけど。簡単な画像作成はMSペインかGimpを使ってたんで、どんなものか使ってみましょう。何でも、オープンソースらしい。ここからダウンロード。
日本語対応みたい。日本語選んでインストール。.net framework 2.0がいるみたい。.net frameworkついてるインストーラもダウンロードできるよ。
起動画面です。タブ対応で、Gimpほど高機能でないけどインターフェイスもわかりやすくて重宝しそう。
ただ、起動がちょっと遅め。.net frameworkのアプリだからだろう。
2007年2月2日
OpenCV第3回 ファイル出力
今回は、ファイルに出力。といっても第2回に毛が生えた程度です。
#include "stdio.h"
#include "cv.h"
#include "highgui.h"
// [1] 入力ファイル名
// [2] 出力ファイル名
int main(int argc, char* argv[])
{
if (argc <= 2)
return -1;
// 画像読込み
IplImage* img = cvLoadImage(argv[1]);
// ファイル出力
cvSaveImage(argv[2], img);
cvReleaseImage(&img);
return 0;
}
でOK。
ヘルプより int cvSaveImage( const char* filename, const CvArr* image ); は、ファイルの拡張子をみて自動的にそのフォーマットで保存してくれる。便利です。cvLoadImageで扱う形式の画像をサポートらしい。んでも、画像形式が1チャンネル(8ビット画像)か3チャンネル(24ビットカラー画像)である必要があるよ。それ以外は、cvCvtScale か cvCvtColor 使うようにだって。多分、チャンネルを変換するんだろう。もしくは、cvSave でXMLかYAMLで保存するらしい。