C#_自作例外の書き方

Exception クラスを継承し、コンストラクタを作成。 コンストラクタには複数あり、出力されるメッセージが異なる。 1) 引数なし2) 引数が文字列3) 引数が文字列と、発生済みを例外オブジェクト 3) は、既に発生した例外を表示することができる。tyr cathc 文…

C#_List の深いコピー

ソースは色々略。 コンストラクタを使う。 var fugaList = new List< int > ( hogeList ) ; これにより、hogeList の中身を複製して fugaList に渡している。 以下は NG 。List や配列は参照型だから。 var fugaList = new List<int>(); fugaList = hogeList; こ</int>…

C++_コピーコンストラクタとは

operator= の意味が分からなかったので、コピーコンストラクタを調べればわかるかと思ったが、結局不明。 コピーコンストラクタ C ( const C & ); C &operator=( const C & ); オブジェクトのコピーがとられた時に実行する処理。そのクラス型への参照を引数…

C++_operator= とは何か 01

調べても不明。コピーコンストラクタという単語の意味も調べる必要が ?operator や T operator=(~ ) というコードが意味不明だった。 C ( const C & ); C &operator=( const C & ); 代入演算子のオーバーロード。 operator= はメンバ関数の名前に過ぎない。…

OpenCV_ROI とは

Region Of Interest : 関心領域。( 対象領域 ) ROI を設定すると、その部分領域を扱う際に本来なら考慮すべきことをしないで処理できる。 ex ) ※ 変数名は適当に使いまわし。 cv::Mat img ( Size(320,240), CV_8UC3 ); cv::Mat roi ( img, Rect(10,10,100,1…

OpenCV_cv::Mat の行を指定して削除したい

経緯メモ) 要素を順次見ていき、条件が true の行だけを cv::Mat 型として欲しい。resize だと欲しいデータにならない。 結論 mat.row( int ); で mat から int 行を取り出し、別 Mat へ挿入する。 cv::Mat mv; mv.push_back ( mat.row( i ) ); mat が元 Mat…

OpenCV_Mat の行削除

OpenCV 逆引きリファレンス で 削除 と検索かけてもヒットしなくて焦った。リサイズ でヒット。 mat.resize(2); 行単位のみで変更。mat は cv::Mat 型。 3 * 3 を 2 * 3 にしたり、 mat.resize(2); → 5 * 3 に削除・拡大できる。 mat.resize(5, cv::Scalar(1…

テレ端・ワイド端とは

ズームレンズの焦点距離は ○ミリ~△ミリまでと表示される。 一番短い焦点距離をワイド端、一番長い焦点距離をテレ端という。ex) 17 ~ 50 ミリというズームレンズでは、17 がワイド端、50 がテレ端。 ズーム比とは、テレ端 ÷ ワイド端 がのこと ( 50 ÷ 17 ) …

C++/CLI_delete について

delete は C# の Dispose メソッドと同じ役割を持つ。 正確には、delete するハンドルが指すオブジェクトが、IDisposable を実装している場合、IDisposable の Dispose( ) を確実に呼び出す。 C++ の場合 オブジェクトの寿命はスコープなどと常に等しい。範…

C#_継承とは

ポリモーフィズムに関係。 MainForm : Form 的なやつ。 継承とは、あるクラスの持つ機能をそっくり引き継ぎ、さらに機能を付け加えた新しいクラスを作る機能のこと。C# では : ( コロン ) を用いて表現する。 MainForm : Form MainForm クラスは、Form クラ…

凸レンズと像 01

小学校で光がこのように進んで像を作ります、とか説明されても分からなかった。ロウソクの火から光は出ているが、蝋の部分は光出てないじゃん意味不とか思ってた。 よくあるロウソク図を知るための知識。+α http://web.canon.jp/technology/kids/mystery/m_…

ピンホールカメラ と 焦点距離

カメラと物体の距離だったか何かを計算しようとして、初っ端からつまった。故にカメラについて調べた軌跡のようなもの。 カメラ前方の 3 次元の世界がレンズを通して、2 次元 ( 平面の画像 ) へと投影され像を結ぶ。 どのような形状の物体が 3 次元空間にあ…

C++_小数点桁数を指定する書式設定

前に sprintf を使ったがもっといいのがあった。 std::string だと書式指定はできない。替わりになるものが std::stringstream 。 double num = 112.14328; std::stringstream numStr; numStr << std::fixed << std::setprecision(2) << num; // ↓で string …

C++/CLI_デストラクタ と ファイナライザ ( 追記 )

アンマネージドなリソースを使っている場合のソースの追記。 デストラクタとファイナライザ デストラクタ これは使わないから捨てるね! 人の目から見てインスタンスが破棄されたときに実行される関数。delete と書くと実行されるので人は把握できる。 gcnew…

オーバーフロー ( Overflow ) とは

飽和処理うんぬん。 ・内容物が容器からあふれること。 ・数値型が表現可能な値の上限を超えること。及びそれによって発生したエラー。 「 桁あふれ」とも言う。 画素値の演算におけるオーバーフロー 色の明度は 0 ~ 255 まで。255 は、 8 桁の符号なし 2 …

C#_特殊キーをクリックしたら処理を走らせる

ProcessDialogKey をオーバーライドするもよう。以下ただのコピペした記事。 以下の ProcessDialogKey を Form1 のコードに記述したら、特定キーを押したときの処理が走った。なお、イベントの KeyDown などは書いていない。 namespace Hoge { public partia…

レンズと焦点

ぶっちゃけ焦点とかよく分からない。 レンズ 像を拡大・縮小させるもの。 ガラスと空気の屈折率の差を利用して、光線を屈折させ、光線の束を収束・発散させる。凸レンズは光を収束させ、凹レンズは発散させる。 屈折:光波や音波などが、一つの媒質から他の…

C++/CLI _デバッグで変数の中身が見れない

C# プロジェクトで動かす C++/CLI や C++ ( DLL ) の Debug を効かせたい。つまりアンマネージ コードのデバッグを有効にしたい。 Please set the debugger type Mixとコンソールにメッセージが出た。 前提:C# のプロジェクトを選択。 1.ソリューション エ…

C++/CLI の基礎 ( デストラクタとファイナライザ )

C++/CLI のオブジェクトは、ガーベージコレクション時に呼ばれるファイナライザにて解放処理を行う。呼び出されるタイミングはガーベージコレクションが判断。 不必要となった時点で明示的に解放すべき場合は、delete 呼び出し時に呼ばれるデストラクタにて…

OpnCV _ C++ _引数の & と const のありなし

型の前の & は参照を示す宣言子。 参照したサイトでは cv::Mat 型だが、他の型も挙動は同じ ? かと。 以下の違い。 cv::Matconst cv::Matcv::Mat&const cv::Mat& 前知識 Memo -- cv::Mat のコピー -- cv::Mat は代入演算子を使うと、浅いコピーが行われコピ…

C#_Task 関連一覧

↑ が投稿日付 new

C#_Task の処理を止める

Task.Run の外から止めたい。中からなら Task.Run(() => { // 処理 ;}); の { } の中で条件分岐をかいて return すればよい。 ・CancellationTokenSource.Cancel( ) を使う方法、・ContinueWith でキャンセル処理を行う方法、・CancellationTokenSource.Canc…

C#_Task を Wait は NG

デッドロックするから。 デッドロック:互いが相手の作業を終わるのを待っていて、どちらも身動きが取れなくなっている状況のこと。 ex ) public void HogeNG( ) { HogeAsyncNG( ).Wait( ); // 対応しない。死ぬ。 } private async Task HogeAsyncNG( ) { aw…

C#_async / await と UI

UIはシングルスレッド。このリソースを内部処理で長時間専用させたくない。 故に非同期メソッドには「まるで同期処理のような書き方で非同期処理を行えて、自然に UI 処理に組み込める」というものが期待された。 よって、 async / await は「非同期メソッド…

C#_戻り値が void と Task の違い

戻り値が void だと await がついた処理がいつ完了するかわからない。 await :Task 完了まで待つ、という意味なので同期的。 await しない場合、「誰かこの仕事実行して」と命令を投げるだけなのでタスク実行中に自分は本来の仕事の続きをこなせる。戻り値 …

C#_非同期メソッド / async / await

非同期メソッド: private async Task<int> Hoge( ) ・async をつけたメソッドのこと。async:非同期、非同期の。・メソッドの中で await を使えるようになる。・戻り値は必ず Task または Task<T> になる。・複数のタスクの実行手順を記述した一つのタスク。作業手</t></int>…

C#_Task とは

Task は非同期処理のことではない。名の通り「仕事、課題、作業の最小単位」。非同期処理における Task はスレッドを意識する必要がない。 ex ) var task = Task.Run(() => { HogeA(); HogeB(); }); 変数 task は「HogeA を実行後 HogeB を実行する、という…

OpenCV_cv::VideoCapture を C++/CLI で使う

C++ cv::VideoCapture cap("./動画ファイル"); cv::Mat mat; cap >> mat; C++/CLI cv::VideoCapture * capX; capX = new cv::VideoCapture("./動画ファイル"); cv::Mat mat; *capX >> mat; しかし、capX をメンバ変数に代入して関数間で使おうとすると例外発…

画素のアクセスメモ ( 幅高さの中点メモ )

縮小コード書く時 for で回すのだが、条件がおかしくてよくエラーになるので。 ※動かしていない。 中点 画像の幅 10 半分にすると長さは 5 。この画像の中心の画素は int 値で取得できない。 取得しようとすると、 4.5 となる。 画像の幅 11の場合 半分にす…

SVM_カーネルトリック

SVM

非線形 SVM 関連 分類時、直線で分類できない場合は非線形 SVM で分類する。カーネルトリックという方法を用いて非線形の識別を実現している。 カーネルに辿り着くまでの流れ線形 SVM → 主問題 → ラグランジュの未定乗数法により双対問題を導出 →カーネル カ…