Akira

OpenCV

OpenCVのバグ

本記事は古い情報となります。 OpenCVには、いくつか有名なバグがあります。 バグの情報に関しては、こちらのページ で確認できますが、私の知っている気になったバグは以下の通り cvErode/cvDilate iterationsに2以上...
画像処理プログラミング

多ビット(10Bit,12Bit,30Bit)画像データの表示、フォーマット

多ビット(10Bit、12Bitなど)の画像データは10Bitや12Bitの型が存在しないため、モノクロの場合はushort型の16bit中、下位10Bit、12Bitなどを使って画像データを格納します。 30Bitとは、R,G,Bの各色が...
画像処理プログラミング

ビットマップファイルフォーマット

ビットマップファイル(*.bmp)のファイルフォーマットです。 ビットマップ全体の構造 BITMAPFILEHEADER 14Byte BITMAPINFOHEADER 40Byte カラーテーブル(無い場合もあり) 4Byte*Index...
C++/CLI

【C++/CLI】Graphicsオブジェクトの作成

.NETではピクチャボックスに画像や線、文字などを描画するには、Graphicsオブジェクトを作成し、このGraphicsオブジェクトに対して描画を行います。 Graphicsオブジェクトを作成する方法は3つ。 1.Imageオブジェクトか...
C++/CLI

【C++/CLI】モノクロ画像の上に線などを描画

モノクロ画像の上に線などを描画する方法をまとめました。 【目標】 モノクロ/カラー区別なく画像の上に描画できること 高速に描画できること 再描画すること 作成したサンプルプログラムはこんな感じ↓です。 (サンプルプログラムの使い方) 各ボタ...
C++/CLI

【C++/CLI】大文字/小文字、全角/半角、ひらがな/カタカナを区別せず比較する

字列を比較する際に、文字の大文字/小文字、全角/半角、ひらがな/カタカナを区別せず比較したい場合があります。 大文字/小文字を区別せずに比較するのは、比較的、情報も多く、 System.StringクラスのCompareメソッド を使います...
C++/CLI

【C++/CLI】VB.NET固有の関数を使用する方法

.NET Framework ではVisual Basic.NETであっても、ただのVisualBasicという名前空間であるだけなので、C#やC++/CLIからVB.NET固有の関数を使うことが可能です。 以下、VB固有の関数の代表格のI...
C++/CLI

【C++/CLI】大文字/小文字、全角/半角、ひらがな/カタカナ変換

大文字/小文字の変換をするには System.String クラスのToLower、ToUpper メソッドを用います。 【コード例】 String^ str; //大文字→小文字変換 str = "ImagingSolution";   ...
C++/CLI

【C++/CLI】ファイルパス(フルパス)からファイル名、拡張子、ディレクトリの取得

ファイルを開くダイアログボックスなどから取得したファイル名(フルパス)からファイル名や拡張子、 ディレクトリなどを取得する場合には System::IOクラスのGet×××メソッド を用います。 以下、サンプルプログラムです。 //ファイル...
C++/CLI

【C++/CLI】数値の書式(フォーマット)指定文字列

数値の表示桁数などの設定にはFormatメソッドかToStringメソッドなどで可能ですが、ここではToStringメソッドによる設定方法を紹介します。 【コード例】 int Val = 123; String^ Txt = Val.ToS...
C++/CLI

【C++/CLI】文字列の分割(System.String.Splitメソッド)

文字列を特定の文字で分割し、Stringの配列に格納するには System.String.Splitメソッド を用います。 CSVファイルを読み込む時などはカンマ(,)で区切るので、このSplitメソッドを使います。 このメソッドの定義は ...
C++/CLI

【C++/CLI】改行文字

メッセージボックスなどの文字列を改行させる時には System.Environment.NewLineプロパティ を用います。 以下、サンプルと実行例です。 【サンプルプログラム】 private: System::Void button1...
C++/CLI

【C++/CLI】テキストボックスの文字列を変数へ代入

テキストボックスの文字列はtextbox1->Textのようにすると取得できますが、この文字列を数値へ変換するには各型に用意されているParseメソッドを使います。 (例) int Val= int::Parse(textbox1->Tex...
C++/CLI

【C++/CLI】 nullチェック

今回は、あまり教える程理解できていないので、メモ的な意味で... C言語ではメモリを確保したか?を確認するのにポインタがNULLかどうか確認しますが、C++では『^』で表されるハンドル型というC言語のポインタにも似た型が登場し、このハンドル...
C++/CLI

【C++/CLI】アンカープロパティによるフォームのリサイズ処理

フォームのリサイズ時にボタンなどの位置をフォームの大きさに合わせて調整する場合、位置を調整するコントロールのAnchorプロパティを設定すると簡単に位置調整が可能となります。 Anchorプロパティは指定した方向がリサイズ時の位置の基準とな...
C++/CLI

【C++/CLI】フォーム間参照

下図のように、メインのフォームから設定値を設定するための子ウィンドウ(ダイアログボックス)を 表示し親のウィンドウに値を設定しなおす方法を紹介します。 フォームを開く フォームをモーダルで表示する場合はShowDialogメソッドを、 モー...