2007年2月28日

Flexでビデオ

も出来ちゃう。ほぼ貼り付けるだけでFlashVideoを再生出来ちゃう。
Flexヘルプをご参考に。
リッチクライアントとしての環境は申し分ないのでは。

ブログランキング ドット ネット 人気blogランキングへ にほんブログ村 IT技術ブログへ

2007年2月27日

おー便利、便利

Flexってすごい便利。というか、コンポーネントがそろってる環境が便利。きっと、RubyとかPythonもかなり効率いい開発が出来そう。何でも勝手にコンポーネントが処理してくれる。
あと、スクリプト言語ってのは使ってると不思議な感覚になる。型宣言してないのにプロパティ使えたりできるしさぁ。C++ならダイナミックキャストを使わないといけないところだけど、普通に使ってる。

GridにXMLをバインディングするので感動した。多分、業務系の人は普通なんだろうけど。。。


ブログランキング ドット ネット 人気blogランキングへ にほんブログ村 IT技術ブログへ

2007年2月20日

CDT日本語化

CDTも日本語化できるようです。
ここから言語パックダウンロードして、解凍してEclipseのインストールフォルダにコピーして完了。
ちなみに、CDTのバージョンは3.1.1、Lanuage Packは3.1.0だけど正常に日本語されてるよ。


ブログランキング ドット ネット 人気blogランキングへ にほんブログ村 IT技術ブログへ

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でコンパイルしてみたいものです。

ブログランキング ドット ネット 人気blogランキングへ にほんブログ村 IT技術ブログへ

2007年2月15日

へーー

PHPで実行ファイルが出来ちゃうんだって。
今度、試してみよう。
そのうちに。。。

ブログランキング ドット ネット 人気blogランキングへ にほんブログ村 IT技術ブログへ

2007年2月14日

C++でプロパティ

こんなんの出来るんだって。

C++で


a.property = 0;
int t = a.property;

か。


ブログランキング ドット ネット 人気blogランキングへ にほんブログ村 IT技術ブログへ

2007年2月9日

EclipseでC/C++を使う その2

MinGWがインストールできたら、CDTをインストール。[ヘルプ] → [ソフトウェア更新] → [検索およびインストール...]でインストールできます。
[インストールする新規フィーチャーを検索] を選択。



[Callisto ディスカバリー・サイト] を選択で[C and C++ Developmenet] を選んだらOK。Eclipseを再起動すればインストールできちゃう。すごいね、Eclipse。

メニューから、[ウィンドウ] → [パースペクティブを開く] → [その他...] でC/C++を選ぶとC/C++のプロジェクトを作成できるよ。

ブログランキング ドット ネット 人気blogランキングへ にほんブログ村 IT技術ブログへ

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」のパスを追加してね。


ブログランキング ドット ネット 人気blogランキングへ にほんブログ村 IT技術ブログへ

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回収縮、膨張処理した結果。



ブログランキング ドット ネット 人気blogランキングへ にほんブログ村 IT技術ブログへ

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)。

ブログランキング ドット ネット 人気blogランキングへ にほんブログ村 IT技術ブログへ

2007年2月3日

Eclipseはじめました

FlexでEclipseを使用してみてから、使ってみたいと思ってたEclipse。ちょっと使ってみます。何回かインストールしてみたことはあったけど、再び挑戦!
どうやら、C/C++もEclipseを使って開発できるみたい。
ここからダウンロード。最新版は3.2.1。日本語化はここから。日本語はNLpack1かな。両方を解答して、NLpack1をコピーするだけ。


ブログランキング ドット ネット 人気blogランキングへ にほんブログ村 IT技術ブログへ

Paint.Net

Microsoftの支援を受けて開発されているPaint.netがバージョンアップらしい。って初めて知ったけど。簡単な画像作成はMSペインGimpを使ってたんで、どんなものか使ってみましょう。何でも、オープンソースらしい。ここからダウンロード。

日本語対応みたい。日本語選んでインストール。.net framework 2.0がいるみたい。.net frameworkついてるインストーラもダウンロードできるよ。

起動画面です。タブ対応で、Gimpほど高機能でないけどインターフェイスもわかりやすくて重宝しそう。
ただ、起動がちょっと遅め。.net frameworkのアプリだからだろう。


ブログランキング ドット ネット 人気blogランキングへ にほんブログ村 IT技術ブログへ


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ビットカラー画像)である必要があるよ。それ以外は、cvCvtScalecvCvtColor 使うようにだって。多分、チャンネルを変換するんだろう。もしくは、cvSave でXMLかYAMLで保存するらしい。


ブログランキング ドット ネット 人気blogランキングへ にほんブログ村 IT技術ブログへ