忍者ブログ
Admin / Write / Res
パソコン関連のメモとして色々書いていきます。
カレンダー
04 2024/05 06
S M T W T F S
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
ブログ内検索
[1]  [2
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

Googleで利用可能であるToDo試作用が動作がうまくないため、不便だったので作成しました。
AdobeのAirをインストールしている必要があります。
不安な人は使わないでくさい。

表示サイズは140*400です。
DL:
http://ux.getuploader.com/UPUPUPrai/download/1/todo.air
↑適当なアップローダーです。

異なるサイズがほしい方は自作するか、コメントなどで要求してください。
可能な限り対応したいと思います。

GoogleのToDoを利用している同士に幸あらん事を。
PR
AdobeAireの開発環境(無料)の設定方法の解説です。

開発に必要な物
・Java(JDK)
・AdobeAirSDK
・コマンドプロンプト
+環境変数の設定(楽にするため)

詳しくは詳細へ
HTMLを利用した簡単なプログラム例

Google Task ( ToDo 試作 )
を表示したいために作成しました。

ここを秘密だよ!
の箇所にGoogleTask(ToDo)のアドレスを入れれば完成です。

強制的に170*400に変更しています。

コンパイル方法はコマンドプロンプト画面で
adl todo.xml

以下にサンプルを示します。
自己署名を作成し.airファイルの作成を行う
サンプルを乗せて説明


cvCalcOpticalFlowLKとCvMatのエラー
Googleでページ表示しようとすると、描画が崩れますよね?
「強制メイリオちゃん」と言う物
https://chrome.google.com/webstore/detail/lijiadlohkonopgceakmnmdddjchilha
これを入れると、読めるようになります。

ただ、文字サイズの幅等から表示が崩れます。
暫定的な修正として導入しやすいので良いのではないでしょうか?

【キーワード】GoogleChrome フォント 変 おかしい 表示がおかしい 表示が崩れる

UniversalIndentGUI

http://www.moongift.jp/2009/02/universalindentgui/

というのを紹介してもらいました。

Win32のバージョンをDLして、ファイルをD&D
その後、上部に
【インデントの即時プレビュー】
のチェックボックスがあるので、チェックを入れると、変換してくれる。

終了時に変換を保存するか聞かれるので、はいにすれば上書きされて読みやすくなる。
ATOK11~の辞書の移行方法
#試したのは2009です。

サイトがあったので列挙

JavaでRPG
http://www.harukitchen.com/rpg_programming/

とほほ入門
http://www.tohoho-web.com/java/index.htm
ここのSwingとかはが役に立ちそう

良さそうな本
http://wisdom.sakura.ne.jp/system/java/swing/index.html

Java本体?
http://mergedoc.sourceforge.jp/

VisualStudio2010でコンパイルした物はそれ以外で動作する際に以下のファイルを要求する場合がある

msvcp100d.dll
MSDN:
http://msdn.microsoft.com/ja-jp/library/abx4dbyh.aspx

MSDN読むとReleseモード時はたぶん不要だと思うんだけど・・・
よくわからないので、とりあえず下記の場所にあります。
(VS2010がインストールされている場合)
 
 
「SUCCEEDED()」は成功時に「TRUE」
「FAILED()」はエラー時に「FALSE」

if( SUCCEEDED(hr) )
{
    // 成功
}
 
if( FAILED(hr) )
{
    // 失敗
}
こんな楽なのあったんだね!orz

HRESULTの基本ルール
成功:0以上
失敗:0未満
regionを利用することでソースコードの折りたたみ処理を追加することができます。
VSの機能です。

VC++
#pragma region 表示されるコメント内容
#pragma endregion
※ endregion から記述しないと、関数などのたたみ込みが解除される
  その上更新が遅い

VB
#Region " 表示される内容 "
#End Region

だそうです。
公式には容器が空のまま書かれているので追加してあげる
公式:
http://opencv.jp/sample/optical_flow.html

追加記入事項
temp_img = cvCreateImage( cvSize(pVideoInfoHeader->bmiHeader.biWidth, pVideoInfoHeader->bmiHeader.biHeight), IPL_DEPTH_8U, 1);
eig_img = cvCreateImage( cvSize(pVideoInfoHeader->bmiHeader.biWidth, pVideoInfoHeader->bmiHeader.biHeight), IPL_DEPTH_8U, 1);
cvCalcOpticalFlowBMの箇所
rows, cols を
 cols = floor((src_img1->width - block.width) / shift.width); 
 rows = floor((src_img1->height - block.height) / shift.height); 
にしないと、エラーで止まる

みたら、確かにw
と思える。。。

参考:
http://edotprintstacktrace.blogspot.com/2009/10/cvcalcopticalflowbm.html
初期のデータ確保などを分けて、効率をよくした。
Bitmapはやっぱりいらなかったので削除して整理
変数も可読性を上げるためにやっていた物をなくした。

また、読み込み時にフラグを利用することで一度のみの読み込みを実装している。
Runをしてからでないと、ちょっと都合が悪いかもしれない・・・
再生に必要な設定の直後に初期化しようとしたら、メディアタイプの取得ができなかった・・・

参考:
BitMapフォーマット
 
↓のIMG0は分解して実装
 
ビットマップのヘッダを手に入れるために以下を行う
AM_MEDIA_TYPE am_media_type;
pSampleGrabber->GetConnectedMediaType(&am_media_type);
VIDEOINFOHEADER *pVideoInfoHeader =(VIDEOINFOHEADER *)am_media_type.pbFormat;

上記の情報をビットマップのヘッダ情報へ置き換える
(bitsizeを使わなくてよくなるのであればほぼ不要になる記述)
BITMAPINFO BitmapInfo;
ZeroMemory( &BitmapInfo, sizeof(BitmapInfo) );
CopyMemory( &BitmapInfo.bmiHeader, &(pVideoInfoHeader->bmiHeader), sizeof(BITMAPINFOHEADER) );
long bitsize = BitmapInfo.bmiHeader.biSizeImage;

バッファの確保を行う
char *pBuffer = (char *)malloc(bitsize);
char *pBuffer2 = (char *)malloc(bitsize);

バッファを取得
pSampleGrabber->GetCurrentBuffer(&nBufferSize,(long *)pBuffer);
pSampleGrabber->GetCurrentBuffer(&nBufferSize,(long *)pBuffer2);


画像データの入れ物を作成
(srcがカラーでdstはグレースケール)
IplImage *src = cvCreateImage( cvSize(width, height), IPL_DEPTH_8U, 3);
IplImage *src2 = cvCreateImage( cvSize(width, height), IPL_DEPTH_8U, 3);
IplImage *dst = cvCreateImage( cvSize(width, height), IPL_DEPTH_8U, 1);
IplImage *dst2 = cvCreateImage( cvSize(width, height), IPL_DEPTH_8U, 1);

バッファから格納する
src->imageData=(char *)pBuffer;
src2->imageData=(char *)pBuffer2;

データの反転を修正
cvFlip(src,NULL,0);
cvFlip(src2,NULL,0);

グレースケールへチャンネル数を下げる
cvCvtColor(src,dst,CV_RGB2GRAY);
cvCvtColor(src2,dst2,CV_RGB2GRAY);

あとは、dstをオプティカルフローの関数へ入れればOK

//メモ //////////////////////////////////////////////////////////////
// OpenCV で実行時に cv::Exception がでる場合の対処方法
 
// オプティカルフロー関数類(cvCalcOpticalFlowPyrLK、cvCalcOpticalFlowHS)が動かない場合の対処方法
//////////////////////////////////////////////////////////////////////
 

読み込みで特殊な物↓ 過去を参考にファイルを作成

#include <qedit.h> // SampleGrabber用

次に

//COMの初期化?
CoInitialize(NULL);
戻り値は基本的に S_ で始まるため、エラーが帰ってこないらしい

RenderFileを利用する前に以下のことを行っておく


// SampleGrabber(Filter)を生成

CoCreateInstance(CLSID_SampleGrabber, NULL, CLSCTX_INPROC, IID_IBaseFilter, (LPVOID *)&pSampleGrabberFilter);
 
// FilterからISampleGrabberインターフェースを取得します
pSampleGrabberFilter->QueryInterface(IID_ISampleGrabber, (LPVOID *)&pSampleGrabber);
 
// SampleGrabberを接続するフォーマットを指定。
// ここがポイントです。
// ここの指定の仕方によりSampleGrabberの挿入箇所を
// 決定できます。このサンプルのような指定をすると
// 画面出力の寸前でサンプルを取得できます。
AM_MEDIA_TYPE am_media_type;
ZeroMemory(&am_media_type, sizeof(am_media_type));
am_media_type.majortype = MEDIATYPE_Video;
am_media_type.subtype = MEDIASUBTYPE_RGB24;
am_media_type.formattype = FORMAT_VideoInfo;
pSampleGrabber->SetMediaType(&am_media_type);
 
// GraphにSampleGrabber Filterを追加
pGraphBuilder->AddFilter(pSampleGrabberFilter,L"Sample Grabber");

RenderFileを利用した後、バッファからデータを取得するように変更する

pSampleGrabber->SetBufferSamples(TRUE);

TRUEでデータを取得し、FALSEで取得しないため、不要であればOFFにする

S_ で始める戻り値は常に関数の実行は成功していることを示す
E_ で始まる戻り値がエラーを示している

参考:
http://hpcgi1.nifty.com/MADIA/Vcbbs/wwwlng.cgi?print+200510/05100005.txt
内容は作成中なので、間違いを含みます・・・
ぶっちゃけ、メモです

//メモ:シーク制御において、IMediaSeeking で特定の地点へ移動させ、画像を取得する方法しかなさそう。
//まだ、画像取得はVMRを利用していないと、停止状態でないとできない
//IBasicVideoを利用
// タイムフォーマットhttp://msdn.microsoft.com/ja-jp/library/cc370946.aspx
// を利用しビデオフレームにして行う?//ビデオフレーム:TIME_FORMAT_FRAME
//this->pMediaSeeking->SetTimeFormat( &TIME_FORMAT_FRAME );
 
//初期画像と、次の場面の画像を取得テスト
//ナノ秒 1^-9乗
LONGLONG count=3^8; //0.8秒
this->pMediaSeeking->SetPositions(0,AM_SEEKING_AbsolutePositioning,0,AM_SEEKING_AbsolutePositioning);
this->pMediaSeeking->SetPositions(NULL,AM_SEEKING_NoPositioning, &count,AM_SEEKING_IncrementalPositioning);
 
//タイムスタンプをなくすことで高速処理? pMediaFilter->SetSyncSource(NULL);
 
最初は
IBasicVideoを利用してやろうとしてたのだが・・・
今まで再生できていたのが再生できなくなった・・・
⇒ヤバイ

IBasicVideoは制約が大きいのでとか言い訳してみる。

というわけで、qedit.h を使いたくはなかったが、使うように変更することに・・・
まず、
http://blogs.yahoo.co.jp/sealion1945/59282388.html
をみて編集
*** 以下コピー ***
SampleGrabberを使用する場合に必要となる、Qedit.hを取得し修正する。

■取得
http://www.koders.com/cpp/fid614F3E471D5D6B7854B5549ADFEC790E3B8703F6.aspx

■修正-以下の5ヶ所をコメントアウトする
//#include "dxtrans.h"
IDxtCompositor //: public IDXEffect
IDxtAlphaSetter //: public IDXEffect
IDxtJpeg //: public IDXEffect
IDxtKey //: public IDXEffect
*** ここまで ***
取得では左上にダウンロードがあるので、そのままファイルをもらってきた。

で、これからいじいじしていく。。。
1.System32 にコピーする
2.【regsvr32 /u ファイル名】 と入力する
  例:
regsvr32 flvsplitter.ax

また、エラーが出た場合はコマンドプロンプトを管理者として実行して、上記のことを行うとインストールできることもある。

以上
YouTubeのクライアントソフト作成用の公式の説明
http://code.google.com/intl/ja/apis/youtube/developers_guide_protocol.html
以下それを読んで

Google Data API
http://code.google.com/p/google-gdata/downloads/list

認証は以下の場合必要
・動画のアップロード
・コメント追加

動画のフィールドとエントリの説明
ここでは、XMLがどのような形式で表示されるかを示している

動画の取得と検索
キーワードを用いて動画検索など

動画アップロード(興味がないので省略)

コミュニティ機能の使用
コメントなどを利用する際に使う

検証エラー(言葉のまま)

・・・どれがビデオURL取得だ?一番上か?(;゜ロ゜)
media:content に.3gpを持つ物があったが・・・これで良いのかな?
というか、これしかなさそう・・・(;゜ロ゜)

ネットワークプログラミングが必要になるのか・・・(;゜ロ゜)

参考URL:
http://csfun.blog49.fc2.com/blog-entry-1.html

http://msdn.microsoft.com/ja-jp/library/cc440190(v=VS.71).aspx
より(MSDNなので、内容はVC/VC++と思われます)

ポーリング:
 連携度差の際、全てに対し要求がないかを調査すること

例外回復方法:
1:再開型例外
例外が生成されたところから実行を継続
2:終了型例外例外が処理されたところで実行を継続(異常終了)

C言語の過去の形式<name.h><cname>のように頭にcを付けて表現するように変更された。
また、名前空間はstdである。

C ライブラリ ヘッダ <stdlib.h> は 2 つのプログラム停止関数、abort と exit を提供
・abort
  ランタイム診断+プログラム自己破壊(コンパイラの実装に影響を受ける)
・exit
  ファイルを閉じ、ステータスを戻す。atexitを使い、インストールされたハンドラを逆順に呼び出し、
  処理するらしい (よく分かってない(;゜ロ゜)
・atexit
  プログラムが終了したときに必ず実行される関数を指定できる

診断ツール!<assert.h> で定義されている assertマクロの一般的定義(未確認)

#if defined NDEBUG
   #define assert(condition) ((void) 0)
#else
   #define assert(condition) \
       _assert((condition), #condition, __FILE__, __LINE__)
#endif
NDEBUG マクロが定義されていると無効になる

イベント管理パッケージ 標準ヘッダ ファイル <signal.h>
・raise と signal 関数、sig_atomic_t 型、そして名前が SIG で始まるシグナル イベント マクロを宣言

スレッドセーフ
  マルチな環境で実行されても問題なく実行できること

以上第一部
長いなぁ~(ぉぃ
Copyright ©  メモメモプログラム All Rights Reserved.
* material by Pearl Box   * Template by tsukika

忍者ブログ [PR]