deteccion de color Topic is solved
Moderator: Flipeador
deteccion de color Topic is solved
hola, estoy haciendo ahk, necesito que al presionar una tecla busque un color y le de click, podrian darme un ejemplo de ahk
- ositoMalvado
- Posts: 183
- Joined: 24 Dec 2019, 12:02
- Contact:
Re: deteccion de color
Estimado compañero, aquí le presento un código que hice para solventar su problema.
Actualmente está configurado para que con la tecla "Z" usted seleccione el color bajo el puntero el mouse, para luego con la tecla "C" busque el color asignado y además mueva el puntero el mouse a la posición el color ecnontrado.
Tenga en cuenta que usted puede pedirme algo más específico, yo solo respondo sobre lo que usted va pidiendo. Aquí el código. Puede modificarlo y "jugar" con él para entender su funcionamiento, le he realizado comentarios para poder guiarlo en la secuencia de pasos.
Actualmente está configurado para que con la tecla "Z" usted seleccione el color bajo el puntero el mouse, para luego con la tecla "C" busque el color asignado y además mueva el puntero el mouse a la posición el color ecnontrado.
Tenga en cuenta que usted puede pedirme algo más específico, yo solo respondo sobre lo que usted va pidiendo. Aquí el código. Puede modificarlo y "jugar" con él para entender su funcionamiento, le he realizado comentarios para poder guiarlo en la secuencia de pasos.
Code: Select all
;INICIA PROGRAMA
global PIXEL_COLOR:=new puntoColor()
;ASIGNAMOS UNA VARIABLE GLOBAL LA CUAL USAREMOS POR EJEMPLO PARA PIXEL DE COLOR ROJO, LA CLASE ES "puntoColor"
global DEBUG:=false
;VARIABLE DEBUG UTILIZADA PARA MOSTRAR MENSAJES AL UTILIZAR EL PROGRAMA O "false" PARA QUE NO MUESTRE MENSAJES
class puntoColor{
;CREAMOS CLASE CON PROPIEDADES "color", posición "x" y posición "y"
color:=""
x:=""
y:=""
setear(){
;FUNCIÓN QUE OBTENDRA EL COLOR DEL PIXEL BAJO LA FLECHA DEL RATÓN Y LO ASIGNARA A "this.color"
MouseGetPos, ox, oy
PixelGetColor, pcolor, % ox, % oy
this.color:=pcolor
if(DEBUG)
MsgBox,, Color obtenido!, % "El color ha sido configurado a " this.color
}
buscar(){
;FUNCIÓN QUE BUSCA EL PRIMER PIXEL CON EL COLOR QUE PREVIAMENTE DEBE ESTAR SETEADO
PixelSearch, ox, oy, 0, 0, % A_ScreenWidth, % A_ScreenHeight, % this.color, 3, Fast
if !ErrorLevel
encontro:=true
if(encontro){
this.x:=ox
this.y:=oy
if(DEBUG)
MsgBox,, Color encontrado!, % "El color " this.color " ha sido encontrado en el punto x=" this.x ", y=" this.y
}else
if(DEBUG)
MsgBox,, Color no existe!, % "El color " this.color " no se encontró"
}
ir(){
;FUNCIÓN PARA MOVER EL MOUSE A LA POSICIÓN QUE HA SIDO ENCONTRADA CON LA FUNCION "buscar" DE LA ACTUAL CLASE
if(this.x!=""){
MouseMove, % this.x, % this.y, 0
Sleep, 1
}
}
}
;FINALIZA INICIALIZACIÓN DE PROGRAMA
return
Z::
;CON TECLA "Z" ASIGNAREMOS UN COLOR AL OBJETO "PIXEL_COLOR"
PIXEL_COLOR.setear()
Return
C::
;CON TECLA "C" BUSCARÁ LA POSICIÓN DEL PRIMER PIXEL DEL COLOR PREVIAMENTE SETEADO CON "C"
PIXEL_COLOR.buscar()
;LUEGO SE MOVERÁ EL MOUSE A LA POSICIÓN ENCONTRADA
PIXEL_COLOR.ir()
Return
My WEB some useful stuff
-
- Posts: 1
- Joined: 27 Oct 2022, 12:01
Re: deteccion de color
Hola, y que ocurre si yo quiero que detecte la repeticion de colores por ejemplo en un casino ruleta se repite 7 veces el color rojo, entonces almacena cuantas veces se repitió a la 7ma vez se activa el mouse para hacer una apuesta.