FC2ブログ

FreeBASIC 学習:OpenCV 使えた

2019-07-13 :  PCクリニック
前回(2019-07-10)の記事:
FreeBASIC 学習:im モジュール」で、
取り敢えず、画像ファイルのアクセスに成功した。

でも、本命(?)は OpenCV が利用できることか?


何とかして出来ないかと学習した。

(1)構造体(struct)の定義方法
(2)共用体(union)の定義方法
(3)ヘッダファイル(biファイル)の定義方法

そして、
以前(2016-02-23)書いた記事:
GSL Shell 学習:OpenCV 使えそうダ?」に出てくる、
「opencv_world300.dll」を使って、
コーディングしてみた:

'----- 「cv2~.bi」 相当:
Type CvMat ' 構造体定義(Type)の方法。Struct じゃない
type as long
step as long
refcount as long ptr
hdr_refcount as long
Union ' Union の定義方法。
Byte as ubyte ptr
Char as byte ptr
Word as ushort ptr
Long as long ptr
Dbl as double ptr
End Union
Union
yy as long
rows as long
End Union
Union
xx as long
clos as long
End Union
End Type

declare function cvLoadImageM alias "cvLoadImageM" _
( byval fnam as const zstring ptr, byval color as long ) _
as CvMat ptr
' alias は必要。 @ 付問題に対処

#inclib "opencv_world300" ' リンク用にコピーした
' --------------------------------------------------

dim img as CvMat ptr
dim as long xx, yy
dim B as ubyte ptr

img = cvLoadImageM( "test.tif", 0 ) ' 0 : GrayScale で読込む

yy = img->yy: xx = img->xx: B = img->Byte

print yy, xx ' 行数、列数
print *B, *(B+(xx-1)), *(B+(xx*(yy-1)+xx-1)) ' 画素値3つ
これで動いた。
OKダ。


補足事項
 @ 付問題とは、

リンカで以下の警告メッセージが出る。
Warning: resolving _cvLoadImageM@8 by linking to _cvLoadImageM
Use --enable-stdcall-fixup to disable these warning
Use --disable-stdcall-fixup to disable these fixups

でも、エラー・レベルでは無いので、「~.exe」は出来て、動く。



本日はここまで。


FreeBASIC 学習は続く。


見ていただいた序でとは厚かましい限りですが、
お帰りに投票して頂けるとなお嬉しいです。 ⇒

190420
関連記事
スポンサーサイト



コメントの投稿

管理者にだけ表示を許可する

人気blog Ranking



最新記事
カレンダー
07 | 2021/08 | 09
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 - - - -
月別アーカイブ
カテゴリ
最新コメント
検索フォーム
リンク
プロフィール

<紙>

Author:<紙>
ようこそ。
「パソコンヲタクの雑記帳」
もろもろなことを綴っています。
パソコン ヲタクってねくら?
画像は kami でなく kani です。

FC2 / i2i / Google




Google Analytics
ブックマーク