18 abr 2015

Opencl para AMD + Visual Studio (tambien para CUDA)

1.- Primero hay que bajar e instalar el "AMD APP SDK" en la pagina de AMD.
2.- Se abre el visual studio, se crea un proyecto de consola vacio.
3..- En el cuador de proyectos se da con el click derecho al nombre del proyecto  y se va propiedades 
4.- en configuracion en la parte de arriba en la pestaña se escoje todas las cofiguraciones
5.-Navegando en propiedades de configuracion en C/C++ en general, se busca la opcion inlcusion de directorios adicionales  y se le agrega  "$(AMDAPPSDKROOT)\include" sin las comillas. Para CUDA, se le agrega “$(CUDA_INC_PATH)”.

6.-En la seccion de vinculacion o Linker se va a general y en el campo de directorios de bibliotecas adicionales se escribe "$(AMDAPPSDKROOT)\lib\x86_64" para amd y para cuda  “$(CUDA_LIB_PATH)”.

7.-Siempre en linker pero en el submenu de entrada en dependencias adicionales escribes “OpenCL.lib” 
8.- arriba del cuadro en la parte derecha hay un boton que se llama adminitrador de configuracion, se le da click, en el campo de plataforma se escoje la opcion de nuevo  y seleccionamos x64, se le da ok y salimos de todas las ventanas.


9.-Este es el codigo de prueba, si crea una ventana sin nada es que ya funciona el proyecto.

#include <CL/cl.h>

int main(int argc, char **argv){
    cl_platform_id test;
    cl_uint num;
    cl_uint ok = 1;
    clGetPlatformIDs(ok, &test, &num);

    return 0;
}


17 ago 2014

Opencv + Codeblocks 13.12, Configuración

una vez instalado Codeblocks , vas a querer a utilizarlo con el opencv, desgraciadamente en Visual Studio de microsoft, tienes que configurar cada proyecyo para que trabaje con esas librerías, es una hueva tremenda, hacer eso a cada rato, agraciadamente con codeblocks no es así, pero no es como una visual studio pero bastante hay que agradecer ya que es gratis.


Abre el puto codeblocks y en la barra de herramientas ve a
  • Settings --> Compiler
y te abrirá esta ventana en las pestañas de selección escoge la que dice compiler settings.

en la sub-pestañas de compiler settings, escoges la de "Other Options" y  en el espacio en blanco escribes
  • `pkg-config opencv --cflags`
SI! CON TODO Y LAS COMILLAS, APOSTROFES O CHINGADO SEA.

luego te vas a la pestaña de Linker settings y en el cuadro de "Other Linker Options", escribes

  • `pkg-config opencv --libs`


En la pestaña "Search Directories" y en su subpestaña "Compiler" en esa misma categoría, ponemos los directorios
  • /usr/include
  • /usr/local/include/opencv
  • /usr/local/include/opencv2


Y haces click en aceptar cambio para salvar todo lo que hiciste y ya estuvo. Ahora si quieres dejar bonito tu autocompletación de palabras, en el menú le das a Settings --> Editor y en el panel izquierdo le das "autocompletion" y dejas todo como en la foto, o le mueves a tu gusto.

Y lo pruebas con un código que utilice Opencv para que veas que si funciona...... Esperas que yo te de el código de ejemplo?....... VE A CHINGAR TU MADRE!, Busca o haz el tuyo no seas huevón!.

26 jul 2014

como instalar opencv en linux

Antes que nada esto se hizo con el ubuntu 14.xx  y opencv 2.4.9, si sigue funcionando para versiones posteriores, pós lleguenle.

1.- abran su puta terminal
2.-escriban
  • sudo apt-get update 
y después
  • sudo apt-get upgrade
para luego instalar las siguientes dependencias

  • sudo apt-get install build-essential libgtk2.0-dev libjpeg-dev libtiff4-dev libjasper-dev libopenexr-dev cmake python-dev python-numpy python-tk libtbb-dev libeigen2-dev yasm libfaac-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev libx264-dev libqt4-dev libqt4-opengl-dev sphinx-common texlive-latex-extra libv4l-dev libdc1394-22-dev libavcodec-dev libavformat-dev libswscale-dev
3.-durante, antes o cuando les dé la chingada gana entran a la pagina de opencv y se bajan en comprimido o enzipado (como quieran llamarle) de las librerias, descomprímalas y con la puta terminal llegamos a dentro de la carpeta que contiene la librería ya descomprimida.

4.- con la terminal creamos una carpeta llamada "build" y accedemos dentro de ella

  • mkdir build 
  • cd build
proseguimos con

  • cmake -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON -D WITH_QT=ON -D WITH_OPENGL=ON .. 
Construimos
  • make
  • sudo make install
5.- Configuramos opencv, siempre desde la terminal hacemos:
  • sudo gedit /etc/ld.so.conf.d/opencv.conf
Escribimos en el archivo
  • /usr/local/lib
En la ultima linea y guardamos

6.- De nuevo en la terminal escribimos...
  • sudo ldconfig
7.- Ejecutamos de nuevo en la terminal
  • sudo gedit /etc/bash.bashrc
y escribimos al final esta linea y guardamos
  • PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
  • export PKG_CONFIG_PATH
Listo chamacos ya quedo instalado en sus maquinas con linux el opencv solo falta probarlo, se puede hacer en terminal ejecutando uno de los ejemplos que trae la librería, pero yo prefiero escribir código y luego ejecutarlo para ello, creare otro escrito para configurar un proyecto en un IDE con el opencv.

14 sept 2013

soundex

les dejo un código que modifique de otro código, que mas bien me base para hacer este, es una prueba soundex, si no sabe lo que es, averiguarlo, se los pongo por si se lo dejan de tarea crear uno, y no saben como, bájenlo modinfíquelo, o simplemente cópienlo, péguenlo, y entréguelo, si su maestro es chingon los reprobara y si no, ya la hicieron. si no entienden el código se chingan, que yo no se lo voy a explicar


#include <stdio.h>
#include <string.h>
#include <ctype.h>




char * discriminacion(const char *dato)
{
    int codigo[]={0,1,2,3,0,1,2,0,0,2,2,4,5,5,0,1,2,6,2,3,0,1,0,2,0,2};
    char soundex[5], ch;
    int pedazo, cont;
    strcpy(soundex, "Z000");
    soundex[0]=toupper(*dato);
    pedazo=codigo[soundex[0]-'A'];
    ++ dato;
    //prinf("%c",soundex[0]);
   
   
   
    for(cont=1; cont<4 && *dato !='\0'; ++ dato)
    {
        if(isalpha(* dato))
        {ch=tolower(*dato);
            if(pedazo!= codigo[ch-'a'])
            {
                pedazo= codigo[ch-'a'];
                if(pedazo != 0)
                {
                    soundex[cont ++]='0'+pedazo;}
                }
            }
       
        }
        printf("%s",soundex);

    return soundex;
    }





int main()
{
    char cadena[]="";
    char *punt, result;
    punt=&cadena;
   
    gets(cadena);
    //while (*punt!='\0')
    //{
    //result =discriminacion(cadena);
//    while (fgets(cadena, sizeof cadena, stdin) != NULL){
    printf("%s\n", discriminacion(cadena));

    //}
    //printf("%s\n", *result);
   
   
   
return 0;   

    }

23 jul 2013

cajas de texto y labels en java

bien para empezar a utilizar esto




y esto


en java, necesitamos de la clase JOptionPane, y la importamos asi:

import javax.swing.JOptionPane;

una vez importado dentro de nuestra clase creada, usamos la sentencia

JOptionPane.showInputDialog("String"); 

esta función devuelve un string, que es lo que escribes en el campo de texto, ahora  lo que esta pintado de azul es el label o etiqueta (para los mas pendejos) que aparece en la ventanita.  Ahí les va un ejemplo para los mas zonzos

String user= JOptionPane.showInputDialog("Usuario");

ya joder aquí esta el ejercicio completo

import javax.swing.JOptionPane;
public class Dialogo {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub

String user= JOptionPane.showInputDialog("Usuario");
String Password= JOptionPane.showInputDialog("Password");

if ("Harry Potter".equals(user) && "Rainbown Dash".equals(Password))

{JOptionPane.showMessageDialog(null, "ok");}

else{

JOptionPane.showMessageDialog(null, "Te chingas no entras");
}


}


}

la sentencia "Harry Potter".equals(user) se usa para saber si lo que escribiste en el text box es igual a Harry Potter






la sentencia JOptionPane.showMessageDialog(null, "Te chingas no entras");, es para que abra un panel de dialogo, como las advertencias de windows.

no voy a explicar de que trata el ejercicio por que esta muy fácil de saber, piensen huevones!!!


20 jul 2013

enviar caracteres del teclado a java

bueno para saber como enviar caracteres desde el teclado a java, es necesario una clase:

import java.util.Scanner;

esta clase tiene que estar importada hacia nuestra clase, para poder hacer uso de sus metodos mediante de un objeto que crearemos en nuestra clase.

Scanner scanner= new Scanner(System.in);

con la instrucción anterior creamos un objeto llamado escanner y mandamos un atributo al constructor que le esta diciendo que el sistema es de entrada.

en la siguiente sentencia creamos una variable String llamada entrada que va recibir lo que tecleemos, ¿pero como va recibirlos? muy fácil pendejos, con el metodo .next(),  este metodo debe ser usado por nuestro objeto creado.

String entrada= scanner.next();

Aquí hay un ejemplo de como usarlo; siéntese libres de copiar y pegar, que lo mismo hice


import java.util.Scanner;
public class Tutorial1 {

/**
* @param args
*/
public static void main(String[] args) {

Scanner scanner= new Scanner(System.in);
System.out.println("Escanear");
String entrada= scanner.next();
System.out.println("Mostrando lo escaneado");
System.out.println(entrada);

}

}

y ya ejecutado en la consola se ve esto:

Escanear
jksd
Mostrando lo escaneado
jksd


Java

Desgraciadamente me tope con que tengo que utilizar este cochino código, Yo siempre he usado C, C++, pero como si un juez me dictara pago de pensión por mis hijos abandonados y ademas tengo que amarlos; le dedico tiempo en conocer este lenguaje.

Estos tutoriales son esparcidos, no tienen secuencias, ni indice, se chingaron si pensaron que era un curso, solo es información para aclarar conocimientos y salir del paso, tampoco voy a empezar desde lo mas básico como se declaran las variables, un hola mundo, etc , a la jodida!!! con uds!! empezare donde yo quiera.

por cierto utilizo el eclipse y el suit de desarrollo de java el 1.7, que era el mas nuevo que venia.

14 may 2011

MANIPULAR EL DIBUJO PARA QUE LO LEA EL PIC

Esta la primera parte de un tutorial para poder visualizar imagenes en el lcd grafico.

Para este tutorial necesitamos:
  • Bitmap2lcd
  • una imagen cualquiera ya sea en JPG o BMP

Se supoone que ya sabemos como hacer primitivas con el driver que se utiliza para manejar el GLCD, todo hasta aqui perfecto.

Pero no MAMES con esas chingadas primitivas, no se pude hacer nada, ¿ que hago para que mi proyecto se vea chingooon?.

R=

Al menos que seas una nalga manejando el driver, puedes hacer muchas cosas, aunque no maravillas.

pero no jodan manejar el driver para sacar una imagen que se vea chingona en el LCD, es una huevaaada grande, para eso mejor agarramos ya una imagen ya hecha y la transformamos la cargamos al pic, y se visualiza.

pero como jodidos hago esto?

ahhh para esto se utiliza un pequeño programa llamado bitmap2lcd, que lo que hace es transformar la imagen original en una imagen con el pixelaje que pueda soportar el lcd, además de convertirla en hexadecimal.

como consigo el programa?
JODANSE CONSIGUENDOLO. YO NO VOY A PONER EL LINK PARA QUE LO DESCARGUEN.

Una vez conseguido el jodido programa y haberlo registrado para que te den la clave para poder usarlo. Lo abrimos y vemos algo asi.



la jodida ventana que tiene los colores azul, rojo y amarillo. son los directorios en donde tienes tus imagenes (azul), en donde se van a generar tus tablas de constantes(rojo), y en donde se guardan los documentos de los proyectos(amarillo).

Una vez configurada las carpetas, se va al menú de Lcd Matix para agarrar la resolucion de nuestro lcd



agarrada la resolucion nos disponemos a buscar nuestra imagen, para ello se utiliza el botón que esta encerrado en un circulo rojo y aparece la ventana que esta encerrada en un circulo cafe.



en este caso agarre una imagen de un dibujo bastante agradable a la vista, desgraciadamente no pude poner a una chica de 18 añitos desnuda ya que al convertirla en la resolucion para nuestro lcd se perdía la imagen completamente y no se distinguía

ya seleccionada la imagen te parece un recuadro que te dice que si quieres adaptarlo para la resolucion de tu lcd



le dices que si y ya.

ahora ha aparecido otra puta ventana, llamada "file and enconder manager", y es la que genera nuestro archivo para utilizarlo en el micro.



por default te da una cierta niveles de tonalidades de grises en la imagen y aveces dependiendo del tipo de imagen no se adapta al tipo de tonalidades por default y se ve asqueroso, tu la puedes modificar moviendo la barra que se encerrada, adaptandola como mejor te paresca.



una vez hecho hesto le das pegar, por que si empiezas a trabajar sobre la imagen y no has pegado esta desaparece

ahora si la has cagado y despareció la imagen y no aparece nuevamente o no puedes componer la pendejada que has hecho, pues le das a close artwork and table of constant, y pues te la mamas por que tienes que cargar de nuevo la imagen



ya ha quedado la imagen como has querido, ahora vamos a generar los archivos que vamos a cargar al pic, para eso aprietas al botón de configurations and preferences (esa que tiene un martillo y una llave cruzada) y pones todo igualito como esta en la imagen, y le das al botón de hide windows para ocultar la ventana



luego en la ventana de file and enconder manager picas la botón de encode cavas in a table constant ( la que tiene la mano apuntando una hoja) para generar el código y al lado de ese botón se encuentra el botón para salvar el archivo.



y ya esta ya tenemos el cochino codigo de para cargar en el pic.

INTRODUCCION ALA LIBRERIA PARA LCDS GRAFICOS EN PIC C (CCS)

materiales:

  • pic 18f4550
  • lcd generico ( en este caso utulice el LGM12641BS1R)
bien se hace un nuevo proyecto en "ccs c", y se incluye la libreria "glcd.c", tambien otras librerias para lcd graficos que se uso es parecido e incluso el mismo.

como en este tutorial solo vamos a ver que funcione el lcd, no se necesita un gran y complejo programa para ver su uso.

#include "C:\Documents and Settings\Goken\Mis documentos\Picc\grapix.h"
#include "glcd.c"
char voltText[] = "Volts";
void main()
{
glcd_init(on);



glcd_text57(0,0, voltText,1,ON);

en este caso el programa solo escribe en la pantalla la palabra volt, ya que el driver para el lcd tiene un comando que es el glcd _text (luego explico como utilizarlo), y se veria asi:


el driver glcd.c tiene unos comandos en el cual si lo escribes en el programa puedes hacer figuritas.

  • glcd_init(mode)
esta funcion debe estar antes de empieces a utilizar el lcd, ya que es la funcion de llamada o inicio, si no lo pones el programa no llama al driver y no puedes visualizar nada en la pantalla, loque va dentro de los parentesis (), puede ser cambiado por on ò off, on si quieres utilizar la pantalla y off si no quieres que funcione.

  • glcd_pixel(x,y,color)
esta funcion lo que hace solo es pintar un pixel, "x" e "y", son las coordenadas donde se encuentra el pixel que quieres pintar por ejemplo x=1 e y=8, y el color es si quieres que l pixel este se pinte o no, poniendo on u off.

  • glcd_line(x1,y1,x2,y2,color)
esta funcion para dibujar un linea y basicamente es lo mismo que el otro, tiene coordenadas para saber donde va empezar y que coordenas quieres que este el otro extremo de la linea, y color si quieres que se pinte o no

  • glcd_rect(x1,y1,x2,y2,fill,color)
esta funcion es para dibujar un rectangulo, esta coordenada de una punta del rectangulo y la otra punta extrema del rectangulo, fill es para si quieres que el rectangulo este relleno poniendo yes y si relleno es no, color es para dibujarla poninedo on u off.

  • glcd_bar(x1,y1,x2,y2,width,color)
este sirve para dibujar una barra, como simpre coordenadas de inicio y fin, el ancho de la barra (width) ahi se pone un numero, el ancho depende de la resolucion de tu lcd y la posicion de que esta tu barra, color si quieres que se pinte o no

  • glcd_circle(x,y,radius,fill,color)
sirve para pintar un circulo, las coordenadas en donde se encuentra el centro, el tamaño del radio, si se rellena o no y si se pinta.

  • glcd_text57(x,y,textptr,size,color)
con es ta funcion se escribe texto, x e y para saber en donde se va a empezar a escribir, el textptr, el texto a mostrar, size tamaño de la letra, color si quieres que se vea o no.

el textptr es una variable que se puede cambiarse, en el ejemplo de al principio pusimos una variable de tipo char y que es lo que contenia. tambienb se puede escribir usando antes un comando llamado sprintf y usando el comando del glcd_text57.

char voltText[] = "Volts";
glcd_text57(0,0, voltText,1,ON);

  • glcd_fillScreen(color)
esto es para rellenar toda la pantalla de negro o para limpiar la pantalla.