tengo un desafio con un profesor de mi instituto para consegir un 10 en su asignatura..
le dije que las pizarras digitales eran una mierda, y encima caras... y el me dijo que ni que fuera ingeniero...
y le dije que aun no siendo ingeniero podia acer algo mejor XDD y me dijo lo del 10.. iva bastante en serio.. aunke no save ke puedo programar ni nada...
![:smt003](./images/smilies/003.gif)
ya tenia una idea preparada en la cabeza...
consiste en apuntar una cam acia una pared blanca o negra a ser posible.. y acer un codigo en autoit que buscara el color rojo, y depende de donde estuviera ese punto rojo colocar el puntero en un sitio u otro..
pienso usar las siguientes funciones como principales.. _WebcamOpen() y pixelsearch()
e estado investigando con estas funciones y tambien pixelgetcolor y e hecho una prueva para fragmentar la imagen que entra por la cam en menos pixeles... divido lo que entra por la cam en una matriz de 11x11 cuadrados(tiene el mismo tamaño que la imagen de la cam) y los coloreo del color del pixel que hay en medio de cada uno ed estos cuadrados. formando asi una imagen mas simple.
el problema... esque no se si es por que las coordenadas de los pixels no son las mismas que las de los programas... que me salen todos esos cuadrados en negro y de vez en cuando sale alguno verde o azul.
codigo:
Código: Seleccionar todo
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <Webcam.au3>
AutoItSetOption("PixelCoordMode",0)
#Region ### START Koda GUI section ### Form=
$sHwnd = GUICreate("Form1", 462, 462, 228, 139)
$cam = _WebcamOpen($sHwnd, 0, 0, 462, 462)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
$v2 = GUICreate("Form2", 462, 462, -1, -1)
GUISetState(@SW_SHOW)
$ypos = 0
$xpos = 0
Global $botn[122]
While 1
For $i = 1 To 121 Step +1
If $xpos >= 462 Then
$ypos += 42
$xpos = 0
EndIf
$color = PixelGetColor($xpos,$ypos,$cam)
$botn[$i] = GUICtrlCreateLabel("",$xpos,$ypos,42,42)
GUICtrlSetBkColor(-1,Hex($color))
$xpos += 42
Next
$ypos = 0
$xpos = 0
MsgBox(0,"HI","")
For $ii = 1 To $i-1
GUICtrlDelete($botn[$ii])
Next
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd