C++
簡単に言うと,画像をぼかす処理. これは,ある画素の輝度値を,隣接しているいくつかの画素の輝度の平均値とすることによって実現される.試作中のソースコードの一部は以下の通り.代入先の変数に対応する画素自身を含めて,隣接する9個の画素の輝度値の…
for文使って一つ一つの値を地道にコピーしても良いけど,に定義されているmemcpy関数を使って,以下のようにかける.こっちの方が繰り返し回数が少なくて済む.Win32 APIを使っているならCopyMemoryも同様に使える. #include <iostream> #include <string.h> using namespace st</string.h></iostream>…
ごく基本的なことだけど,Win32APIで独立した複数のウィンドウを作成する方法をメモ.Win32APIでは,CreateWindowの第一引数で指定されたクラス名をウィンドウの識別子として使用する.なので,これを変えてCreateWindowを呼び出せば,複数のウィンドウを作…
なかなか便利.以下のように使える. #include <vector> #include <iostream> using namespace std; int main(void) { const int vecNum = 4; const int pushNum = 10; vector<int> vecArray[vecNum]; // 値を代入 int i, j; for(i = 0; i < vecNum; i++) { for(j = 0; j < pushNum;</int></iostream></vector>…
ウィンドウのクライアント領域を再描画する関数に,InvalidRectが用意されてる. が,1秒間に何回もクライアント領域を再描画する必要があると,かなり画面がちらつく. ウィンドウの背景色で,クライアント領域全体を塗りつぶした方がいくらかまし. Select…
OpenGLの頂点の色のRGBそれぞれに異なる乱数を指定して,TRIANGLE_STRIPをたくさん描画してみた. 頂点数60の結果の一フレーム. 頂点数600の結果の一フレーム. 頂点数600000の結果の一フレーム. 「あ,ランダムな色になってる」って確認できる. でも擬似…
カメラ映像を上下左右反転させるように中間フィルタ(TransInPlace Filter)を作成してみた.カメラの位置,向きに制約がある場合は,こういう風にソフトウェア的に処理するのが重宝する.反転させるメソッドは以下のような感じ. m_lVidHeight, m_lVidWidthは…
DirectShowでは,IVideoWindowインタフェースで,映像を表示するウィンドウに関する様々な設定,制御ができる. マウス,キーボードメッセージを受け取らせるウィンドウの指定は,m_pVW->put_MessageDrainで行える. HRESULT hr = m_pVW->put_Message((OAHWN…
windowsでは,座標の原点が左上にあり,右方向がX軸の正の方向となっていて,下方向がY軸の正の方向となっている.X軸の座標の値は,0以上DISP_MAX_X(ディスプレイのX軸方向の最大画素数)以下となる.同じく,Y軸の座標の値は,0以上DISP_MAX_Y以下となる.…
ウィンドウプロシージャの,switch (message)の中に,以下の処理を記述する. case WM_GETMINMAXINFO: MINMAXINFO *pmmi; pmmi = (MINMAXINFO *)lParam; pmmi->ptMinTrackSize.x = WINDOW_WIDTH; // ウィンドウの最小幅 pmmi->ptMinTrackSize.y = WINDOW_HEI…
入力x1, x2, x3があり,それぞれの重みがw1,w2,w3,閾値が1である1つのニューロンがあるとする.確率的2値モデルを想定して,sigmoid関数の理論値と実際の値を確かめるプログラムを作成した.当り前の結果が出る(笑) #include <iostream> #include <math.h> using namespace st</math.h></iostream>…
マウスカーソルが,ウィンドウの描画領域内にあるときのみ,カーソルを消す処理を実装中.以下のようなコードで自分は消してみた.Win32 APIのShowCursor関数は何度も呼び出すことができるけど,内部カウンタを持っていて,内部カウンタが0以下の時はカーソ…
文字列を表示する位置として,マイナスも指定できる.TextOut(hDC, -5, -5, comment_str, strlen(comment_str)); こんな感じで指定すると,文字列がウィンドウからマイナスの分だけはみでて表示される.はみでている部分は何も表示されない.
DirectShowのフィルタは,なかなか良く設計されてると思う.他のを使ったことがないからかもしれないけど,かなり使いやすい.やっぱCOMはすごいや. 入力フィルタ,中間フィルタ,出力フィルタと順につないでいってプログラミングする.各フィルタは,入力…
hr = pAMSConfig->GetStreamCaps(iFormat, &pmt, reinterpret_cast(&scc));で,カメラの適切な解像度を探っていく.以下のソースコードの該当箇所のfor文の繰り返しの数を,カメラごとに,指定したい解像度に合わせて変更すれば一応できる.もっとスマートな…
// Test2.cpp : アプリケーションのエントリ ポイントを定義します。 // #include "stdafx.h" #include "Test2.h" #include <fcntl.h> #include <iostream> #include <io.h> #define MAX_LOADSTRING 100 // グローバル変</io.h></iostream></fcntl.h>…
(void)cin.get();のように,関数名の前に(void)を付けて,戻り値を意図的に使用していないことを明示.
関数の引数において,値が関数の処理によって変更されないことを明示するために,該当の引数にはconst修飾子をつけるとよい.char *strcpy(char *s1, const char *s2) strcpyの例では,文字列s2が変数s1にコピーされる.したがって,s2は変更されない.
いつも使っていないと忘れてしまうのでメモ. メモでは,変数の型はすべてdoubleとする.変数名は,cpArrayとするが,定義されている任意の型名,定義可能な任意の変数名に置き換えても同様.C++での1次元配列の生成は,ELM_NUM1を配列の次元1の要素数とする…