画像処理

 投稿者:しばっち  投稿日:2019年 9月26日(木)20時15分12秒
  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

以下略
 

戻る