lorsque tu utilises des constantes , fait le jusqu'au bout
Code : Tout sélectionner
Enumeration
#Form0
#gadget_Image
#Image1
#Image2
EndEnumeration
LoadImage(#Image1, "Caractere17.bmp")
CopyImage(#Image1, #Image2)
ResizeImage(#Image2, 69, 89)
OpenWindow(#Form0, 668, 145, 104, 112, "New window ( 0 )", #PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_TitleBar)
ImageGadget(#gadget_Image, 15, 8, 69, 89, ImageID(#Image2))
StartDrawing(ImageOutput(#Image2))
CouleurFond = Point(1, 1)
Pixel = 0
For ImageY = 1 To ImageHeight(#Image2) - 1
For ImageX = 1 To ImageWidth(#Image2) - 1
Pixel + 1
CouleurPixel = Point(ImageX, ImageY)
LigneCouleur$ + " " + RSet(Str(CouleurPixel), 8, "0") + " "
If Pixel = 4
Pixel = 0
Debug LigneCouleur$
LigneCouleur$ = ""
EndIf
Next
Next
FreeImage(#Image1)
FreeImage(#Image2)
StopDrawing()
Repeat
Evenement = WaitWindowEvent()
Until Evenement = #PB_Event_CloseWindow
; EPB
note , que j'ai laissé l'image 1 alors que je ne comprends pas a quoi elle va te servir
(tu fais une copy d'image )
petite variante au niveau affichage de la valeur des points ...
lorsque le pixel est egale a 0 c'est de la couleur noire , donc je met dans la matrice la valeur 1 pour dire qu'il y a un pixel
ça servira pour la futur reconnaissance

lorsque c'est different de 0 c'est soit la couleur du fond (blanc ) soit n'importe qu'elle autre couleurs , comme le Gris dans ton image
donc c'est pas bon , ça fait pas partie du caractere ... donc je met 0 dans la matrice !
de cette façon , j'ai une représentation exacte du caractere !
il ne manque plus qu'a attribuer des points de reconaissance pour dire que ce caractere est un "1"
ps: si tu as resolu la decoupe , et avec ce bout de prg , il ne te manque plus que le repere des point d'identifications
et l'attribution pour tel ou tel caractere .... ton OCR est quasi fini
Code : Tout sélectionner
Enumeration
#Form0
#gadget_Image
#Image1
#Image2
EndEnumeration
LoadImage(#Image1, "Caractere17.bmp")
CopyImage(#Image1, #Image2)
ResizeImage(#Image2, 69, 89)
OpenWindow(#Form0, 668, 145, 104, 112, "New window ( 0 )", #PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_TitleBar)
ImageGadget(#gadget_Image, 15, 8, 69, 89, ImageID(#Image2))
Dim matrice(69,89)
StartDrawing(ImageOutput(#Image2))
CouleurFond = Point(1, 1)
;Pixel = 0
For ImageY = 1 To ImageHeight(#Image2) - 1
For ImageX = 1 To ImageWidth(#Image2) - 1
CouleurPixel = Point(ImageX, ImageY)
;Debug str( red(CouleurPixel)) +" "+str( Green(CouleurPixel))+" "+str( Blue(CouleurPixel))
if CouleurPixel =0
matrice(ImageX,ImageY)=1
Else
matrice(ImageX,ImageY)=0
Endif
Next ImageX
Next ImageY
FreeImage(#Image1)
FreeImage(#Image2)
StopDrawing()
calldebugger
; on affiche la matrice :
For Y = 1 To 88
For X = 1 To 68
ax$=ax$+str(matrice(X,Y))
Next X
ax$=ax$+chr(10)
Next Y
MessageRequester("contenu de la matrice", ax$)
beep(440,100)
calldebugger
Repeat
Evenement = WaitWindowEvent(2)
Until Evenement = #PB_Event_CloseWindow
; EPB