|
open cvライブラリーを使用して、十進BASIC上で画像処理を行います。
なお、実行時にはopencv_world300.dllが必要です(BASIC.EXEと同じフォルダに入れてください)
下記URLからダウンロードしてください。(imagetool.zip)
https://36.gigafile.nu/1125-n8d2d72a2da1c926a4d213cd6f41f8bd3
ダウンロード期限:2019年11月25日(月)
ダウンロードキー:設定していません
※警告
open cvは日本語パスに対応していません。
FILE GETNAME F$,"画像ファイル|*.jpg;*.jpeg;*.png;*.gif;*.bmp"
CALL PICTURELOAD(F$,XSIZE,YSIZE)
CALL GRAY(XSIZE*.2,YSIZE*.2,XSIZE*.8,YSIZE*.8)
END
EXTERNAL SUB GRAY(XS,YS,XE,YE)
OPTION BASE 0
OPTION CHARACTER BYTE
LET XSIZE=INT(XE)-INT(XS)+1
LET YSIZE=INT(YE)-INT(YS)+1
DIM IN(XSIZE,YSIZE),OUT(XSIZE,YSIZE)
ASK PIXEL ARRAY (XS,YS) IN
LET IN$=REPEAT$(CHR$(0),XSIZE*YSIZE*3)
LET OUT$=REPEAT$(CHR$(0),XSIZE*YSIZE*3)
FOR Y=0 TO YSIZE-1
FOR X=0 TO XSIZE-1
LET ADR=(Y*XSIZE+X)*3+1
CALL RGB(IN(X,Y),R,G,B)
LET IN$(ADR:ADR)=CHR$(B)
LET IN$(ADR+1:ADR+1)=CHR$(G)
LET IN$(ADR+2:ADR+2)=CHR$(R)
NEXT X
NEXT Y
CALL GRAY_(IN$,OUT$,XSIZE,YSIZE)
FOR Y=0 TO YSIZE-1
FOR X=0 TO XSIZE-1
LET ADR=(Y*XSIZE+X)+1
LET R=ORD(OUT$(ADR:ADR))
LET G=ORD(OUT$(ADR:ADR))
LET B=ORD(OUT$(ADR:ADR))
LET OUT(X,Y)=COLORINDEX(R/255,G/255,B/255)
NEXT X
NEXT Y
MAT PLOT CELLS,IN XS,YS;XE,YE:OUT !'画像表示
!'
SUB GRAY_(INIMAGE$,OUTIMAGE$,WIDTH,HEIGHT)
ASSIGN ".\DLL\imageprocessing.dll","gray_"
END SUB
END SUB
以下略
|
|