喫茶XRAYトップページ


[12583] OpenCV返信 削除
2019/2/4 (月) 06:32:36 Mr.XRAY
以下の記事を追加しました.

[ OpenCV ライブラリを Delphi で使用する ]
http://mrxray.on.coocan.jp/Delphi/Others/OpenCV_Delphi.htm


[12584] Re:OpenCV返信 削除
2019/2/4 (月) 08:31:05 SO
▼ Mr.XRAYさん

使用前の手順が多いですが、翻訳読んで分かりますよね!?
ただ使用できたとして、ラベリングはVer3〜から実装されたみたいですし、
ヘッダファイルのDelphi移植が必要かもしれません。。。

https://qiita.com/wakaba130/items/9d921b8b3eb812e4f197


http://imagingsolution.blog.fc2.com/blog-entry-193.html
マインスイーパーにしか見えないw

[12585] Re2:OpenCV返信 削除
2019/2/4 (月) 15:47:41 Mr.XRAY
▼ SOさん

> 使用前の手順が多いですが、翻訳読んで分かりますよね!?
> ただ使用できたとして、ラベリングはVer3〜から実装されたみたいですし、


ラべリングは ver 3〜 なんですか.
OpenCV もだいぶ前にインストールしてテストしていたのですが,
今回,某掲示板で書き込みがあったので...
記事を書いた目的は,セットが結構面倒だと言うことと,
使いたい方の日本語の図入り翻訳です.
手順は Delphi-OpenCV ページの記事のままです.
,ネタキリラボさんので十分なのではないかとも思っています.
 
> http://imagingsolution.blog.fc2.com/blog-entry-193.html
> マインスイーパーにしか見えないw


ハハハッ.

今は FireMonkey がありますし,
VCL も探せばいろいろなライブラリがありますし.

某掲示板で質問した方も,幼稚園児みたいなことを書かないで,
何をどうしたのか書けばレスしてあげたのに.


[12586] Re3:OpenCV返信 削除
2019/2/4 (月) 16:30:14 Mr.XRAY
> 某掲示板で質問した方も,幼稚園児みたいなことを書かないで,
> 何をどうしたのか書けばレスしてあげたのに.


あっ ! レスしても意味なかったですね.
たって,ラべリングの機能が ver 3.0 からだって知りませんでしたから (^^;


[12587] Re4:OpenCV返信 削除
2019/2/8 (金) 08:12:57 SO
▼ Mr.XRAYさん

背景差分法の検索結果上位のサイト
https://algorithm.joho.info/programming/image-processing/

素晴らしいですね。
数学分からないけど(^^;A、分かった気分になりますw

[12588] Re5:OpenCV返信 削除
2019/2/8 (金) 18:41:51 Mr.XRAY
▼ SOさん
> https://algorithm.joho.info/programming/image-processing/
>
> 素晴らしいですね。


ほんとに,よくまとまっていますねぇ〜,スゴイなぁ.


[12589] Re:OpenCV返信 削除
2019/2/9 (土) 22:49:24 Mr.XRAY
以下を追加しました.
 
[ 06_TocvView コントロールを使用した画像表示と動画再生 ]
http://mrxray.on.coocan.jp/Delphi/Others/OpenCV_Delphi.htm#06


[12590] 車両ナンバー認識返信 削除
2019/2/10 (日) 21:27:01 Mr.XRAY
ググっていたらこんなの見つけました.

GitHub - r1me/TOpenALPR: Delphi binding for OpenALPR
https://github.com/r1me/TOpenALPR

(1) 誰かが OpenCV を使用した車両ナンバー認識のライブラリを作成した
(2) それを誰かが Delphi で利用できるようにヘッダファイルを作成した

ということのようです.
面白そうなのでやってみました.
添付のサンプルを Delphi XE5(UP2) でコンパイルしたら未定義が発生したので,
Delphi 10.2.3 Community でコンパイルしました.
マウスでナンバープレートを囲む ROI (領域) を設定してから
[Detect plates] ボタンをクリックすると認識します.


[12591] OpenCVでラベリング返信 削除
2019/2/12 (火) 08:55:40 Mr.XRAY
SO さんが

>ただ使用できたとして、ラベリングはVer3〜から実装されたみたいですし、
>ヘッダファイルのDelphi移植が必要かもしれません。。。


と書いているのですが,某掲示板で反応があったらやってみようと思っていました.
でも反応がなさそうなのでやってみました.

以下から opencv-3.0.0.exe をダウンロードして
opencv_world300.dll を使用するコードを以下のようにしました.

https://sourceforge.net/projects/opencvlibrary/files/opencv-win/3.0.0/

  function connectedComponents(image: IMAT;
                               labels: IMAT;
                               connectivity: Integer;
                               ltype: Integer): Integer;
                               cdecl; external 'opencv_world300.dll';

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  LFilePath   : string;
  LSource     : IMAT;
  LlabelImage : IMAT;
  LnLabels    : Integer;
begin
  LFilePath  := 'd:\Opencv\resource\media\matchshapes.jpg';
  LSource := imread(LFilePath, CV_LOAD_IMAGE_GRAYSCALE);

  LnLabels := connectedComponents(LSource, LlabelImage, 8, CV_32S);
  ShowMessage(IntToStr(LnLabels));
end;

コンパイルして実行すると下図のように関数がないというエラーになりました.
そんだらことはなかんべ,ということで DLL 内の関数名を調べてみました.
何と !! 先頭に ? がついています.
これは残念ですが DLL を作成する時の問題なので,Delphi 側からは対処できません.

最新版の OpenCV 4.0.1 でも同じでしたが,
OpenCV 4.0.1 には 32 ビットの DLL は同梱されていません.64 ビット用だけです.

珍しい,滅多にはないケースだとは思いますが,
こういうことが世の中にはあるということで.ハイ.

参考

[[006] [05_DLL 内のエクスポート関数名を列挙]
http://mrxray.on.coocan.jp/Delphi/plSamples/006_Assembler_exe.htm#05

[06_DLL 内の関数の使用方法 - 非公開 API の使用方法]
http://mrxray.on.coocan.jp/Delphi/Others/Usage_Win32API.htm#06

[C++で作成したDLLを他の言語で利用できるようにする]
https://konuma.org/blog/2007/04/24/c_b43e/



[12592] Re:OpenCVでラベリング返信 削除
2019/2/13 (水) 08:21:20 Mr.XRAY
> 珍しい,滅多にはないケースだとは思いますが,
> こういうことが世の中にはあるということで.ハイ.


ネット上の記事によると,OpenCV 3.0.0 から
開発言語が C から VC++ (マイクロソフト) になったそうです.
そのためと思われます.

DLL は,各種のプログラム言語から共通に使用することを目的にした,
一種のライブラリなのですが,VC++ のデフォルトが VC++ 専用の DLL 作成
ということでございます.さすがにマイクロソフトです.


[12596] Re:OpenCVでラベリング返信 削除
2019/2/15 (金) 07:47:21 SO
▼ Mr.XRAYさん

!?。
自分も「dumpbin /exports」にて調べてみました。
おっしゃる通りなんか装飾されてます。。。

[12597] Re2:OpenCVでラベリング返信 削除
2019/2/15 (金) 09:30:45 Mr.XRAY
> 自分も「dumpbin /exports」にて調べてみました。
> おっしゃる通りなんか装飾されてます。。。


あっ,dumpbin の方が手軽ですね.
ソースコードが入手可能なようですので,VC++ で DLL を作成すればいいのかも知れませんが,
DLL を素直に利用する立場としてはやるつもりはありません (^^)
Microsoft computer Vision API を利用するとか,
TMSSoftware の製品とか Mitov Software - VisionLab を利用するとかを考えていただくとして..

ということで,↑ の関係リンクを記事のページに追加しておきました.


INCM/CMT
Cyclamen v3.82