domingo, 9 de marzo de 2014

Conversion de frase a código ASCII con Wolfram Alpha

Quizá sea por curiosidad, o por experimentar, pero en algunas ocasiones resulta útil convertir toda una cadena de caracteres a su equivalente en ASCII, por suerte Wolfram Alpha dispone de una función que permite conseguir este resultado.

Para ello escribir la siguiente petición:

toCharacterCode('ivan')

Con lo cual se logra traducir toda la palabra a su equivalente ASCII, a continuación unas pantallas del resultado.


Si te fue útil compártelo y dale like!!!.

jueves, 23 de enero de 2014

Compilar archivos C# con Sublime Text 2

Quizá no haya mas que pedirle a la vida que un buen editor para programar algo de código, Sublime Text es un editor que quizá te pueda agradar por su atractivo visual así como su potencia, Sublime Text ofrece la opción de poder compilar nuestro código en diversos lenguajes, como por ejemplo C++, Python, Ruby por mencionar algunos, esta opción la encontramos en Tools→Build System. segun se muestra en la siguiente imagen:



Sin embargo los lenguajes que puede compilar no están limitados a esa lista, Sublime Text ofrece una manera de especificar que deseamos realizar una compilación con algún lenguaje que no aparece en dicha lista para ello es imprecindible contar con el compilador del lenguaje que deseamos agregar a la lista, en esta entrada se mostrará como habilitar la compilación de código de C# utilizando para ello el compilador que trae windows por defecto el "C sharp compiler".

1. Primero, en la barra de herramientas seleccionar Tools→Build System→New Build System...

2. Se abrirá un nuevo documento:
Agregar el siguiente código:



Es importante notar que la ruta "cmd" dependerá de donde esta ubicado tu instalación del compilador de C sharp en windows, en estos momentos que estoy e una computadora con windows 8.1 la ruta es: "C:\Windows\Microsoft.NET\Framework\v4.0.30319"

3. Salvar el archivo con el nombre de nuestra preferencia pero respetando la exención, en este caso pondré "Csharp".



4. Y listo a probar con un Hola mundo, generar un nuevo archivo con el código necesario para crear un hola mundo, seleccionar  Tools→Build System→Csharp después presionar Ctrl+B (Este es el shortcut para compilar) y podrás ver los resultados a continuación:


Si te fue útil no olvides darle like, hasta la próxima entrada.

jueves, 8 de agosto de 2013

Inicialización rápida de estructura MAT en openCV

En ocasiones deseamos crear una pequeña estructura cv::Mat para probar algún algoritmo en OpenCV, a continuación te presento un tip para poder inicializar de manera rápida un cv::Mat:

En este caso, se ha creado e inicializado una estructura cv::Mat a partir de un arreglo de 4 x 4. cv::Mat soporta la creación de una estructura a partir de una arreglo tradicional de c++, para ello se utiliza la siguiente sintaxis:

Mat(numero de filas, 
         numero de columnas, 
         Tipo de dato de la Matriz, 
         Matriz de c++ usada para la inicialización);

Espero que este tip te sea de mucha utilidad. Feliz código.

jueves, 21 de marzo de 2013

ANDROID: Incrementar el tamaño de la vista de diseño XML en Eclipse

Uno de las configuraciones mas importantes que podemos establecer en un IDE es el tamaño del tipo de letra, cuando desarrollamos aplicaciones para Android, el tamaño de la fuente del editor de texto suele estar establecido en un tamaño 10, lo cual no es muy amigable a la vista.



Cambiar el tamaño de la fuente no es tan intuitivo, por lo que en esta pequeña entrada señalare los pasos para incrementar el tamaño del tipo de letra del editor XML para el Layout gráfico:

Proceder como sigue: windows -> preferences




En la ventana que aparece entrar a la siguiente ruta:
General->Appearence->Color and Fonts




Seguido de eso del lado derecho seleccionar el folder Basic:




Posteriormente seleccionar la opción Text Font




En el botón edit seleccionar el tamaño deseado.




Y listo, un tamaño mas cómodo para no trastornar a nuestros ojos.



Espero que esta entrada te haya servido.

Happy Code!!! <:D>

domingo, 9 de diciembre de 2012

Multiplicación de Matrices en Wolfram Alpha

Esta será una entrada breve, pero estoy casi seguro que sera de gran utilidad para alguien en el mundo.
Wolfram Alpha (http://www.wolframalpha.com) es un potente buscador de información, que al mismo tiempo es una útil herramienta matemática.

Como ejemplo de ello, realizaremos el cálculo de la multiplicación de 2 matrices, para ello debemos saber:

1. Como introducir una matriz
2. Como especificar la operación, producto matricial.

Introducir una matriz en WA (Wolfram Alpha).

La sintaxis para introducir una matriz es sencilla, para ello se sigue el siguiente esquema:

Dada una matriz de 2 dimensiones:
A = [1, 1]
       [1, 1]

Su correspondiente sintaxis en WA es: {{1,1},{1,1}} produciendo la siguiente salida:

Si se requiriera capturar una matriz de 3 x 3, la sintaxis sería de la siguiente manera:

{{1,2,3},{4,5,6},{7,8,9}}

Lo cual produciría la siguiente salida:



Observando lo anterior podemos deducir que para iniciar una matriz debemos abrir y cerrar llaves:

{}

Dentro de las llaves por cada fila en la matriz se introduce nuevas llaves separadas por comas:

{{},{},{}}

Dentro de cada llave que representa las filas se introducen los datos de cada columna separados por comas:

{{2,4,5},{3,6,8},{3,4,8}}

De esta manera el usuario puede introducir cualquier tipo de matriz.

Producto Matricial (http://en.wikipedia.org/wiki/Matrix_multiplication)

Para producir el producto matricial, basta con colocar entre dos matrices un punto, el cual simboliza la operación de multiplicación, a continuación un ejemplo:


Espero que esta información les sea de utilidad, Hasta pronto y gracias por su atención.

martes, 9 de octubre de 2012

OpenCV #1: Configuración de OpenCV en Visual Studio 2010

Antes de poder empezar con el mundo de la visión con OpenCV es necesario realizar un par de configuraciones en el IDE de tu preferencia, en esta entrada describiré los pasos que hay que seguir para realizar la configuración de OpenCV 2.4.0 sobre "Visual Studio 2010 professional edition", utilizare para este propósito un OS Windows 7 de 64 bits. A pesar de que el  OS es de 64 bits, en el ejemplo emplearé librerías de 32 bits las cuales pueden ser usadas sin problemas en sistemas de 64 bits.

Paso 1. Descargar la ultima versión de OpenCV

Para realizar este paso es necesario entrar a la página de repositorios de código de OpenCV, la sección de descargas para Windows es la que nos interesa, la puedes encontrar en el siguente Link: http://sourceforge.net/projects/opencvlibrary/files/opencv-win/

Esta es una vista de la página de descargas:


Como puedes observar tenemos disponibles todas las versiones publicadas hasta la fecha desde la 1.0 hasta la mas reciente. Hacer clic en la versión 2.4.0, descargar la que tiene por nombre "OpenCV-2.4.0.exe".

Una vez descargado el ejecutable, realizar la instalación la cual solo descomprimirá los archivos fuente de OpenCv.

Como sugerencia, colocar la carpeta en el directorio Raíz y renombrarlo como "OpenCV2.4.0".

Paso 2. Configuración de Sistema Operativo

Agregar al la variable de entorno PATH del sistema operativo las rutas de los binarios de OpenCV, sugiero para este caso utilizar el software "Path Editor" el cual es gratuito y dispone de una interfaz gráfica que facilita la administración de la variable PATH.




Los directorios que deberán ser agregados al PATH son:
  1. C:\OpenCV2.4.0\opencv\build\x86\vc10\bin
  2. C:\OpenCV2.4.0\opencv\build\common\tbb\ia32\vc10

Consideraciones Importantes para le directorio bin:
  • Usar x86 cuando se crearán proyectos para arquitecturas de 32 bits.
    • Utiliza vc9 para Vs2008
    • Utilziar vc10 para Vs2010
  • Usar x64 cuando se crearán proyectos para arquitecturas de 64 bits.
    • Utiliza vc9 para Vs2008
    • Utilziar vc10 para Vs2010
Consideraciones Importantes para le directorio tbb:
  • Usar ia32 cuando se crearán proyectos para arquitecturas de 32 bits.
    • Utiliza vc9 para Vs2008
    • Utilziar vc10 para Vs2010
  • Usar intel64 cuando se crearán proyectos para arquitecturas de 64 bits.
    • Utiliza vc9 para Vs2008
    • Utilziar vc10 para Vs2010.


Paso 3. Crear el proyecto

Una vez que se han realizado las configuraciones correspondientes, el siguiente paso será crear un proyecto de VS2010.

  • Hacer clic en "file->New->Project".
  • Seleccionar como lenguaje "C++"
  • Utilizar la plantilla "Win32 Console Application"
  • Seleccionar en la parte inferior la localización de donde se situará el proyecto "Location"
  • Establecer el nombre del proyecto en "Name".
  • En la ventana de bienvenida hacer clic en "Next".


  • Seleccionar las opciones "Console Application" y "Empty Project" y hacer clic en "finish".


Paso 4. Configuración al proyecto

Hacer clic secundario en el nombre del proyecto (No de la solución), en el menú contextual seleccionar "properties", en la ventana seleccionar de lado izquierdo "Configuration Properties->VC++Directories", en esta sección incluiremos los directorios necesarios para poder trabajar con OpenCv, dichos directorios son:
  1. C:\OpenCV2.4.0\opencv\build\include este estará incluido en la sección "Include Directories"
  2. C:\OpenCV2.4.0\opencv\build\x86\vc10\lib este estará incluido en la sección "Library Directories"

En esta parte es muy importante tener en cuenta las siguiente consideraciones:

Dentro del directorio de OpenCV encontramos los siguientes subdirectorios:
  • 3rdparty
  • android
  • apps
  • build
  • cmake
  • data
  • doc
  • include
  • ios
  • modules
  • samples
Los directorios "include" y "lib" que se va a usar en el proyecto de VS2010 (Visual Studio 2010) son los que están localizados dentro de "build".

Con respecto a "lib" debemos tener en cuenta las siguientes consideraciones:
  • Usar x86 cuando se crearán proyectos para arquitecturas de 32 bits.
    • Utiliza vc9 para Vs2008
    • Utilziar vc10 para Vs2010
  • Usar x64 cuando se crearán proyectos para arquitecturas de 64 bits.
    • Utiliza vc9 para Vs2008
    • Utilziar vc10 para Vs2010


Paso 5. Crear código de ejemplo.

Hacer clic secundario sobre la carpeta "Source Files" del "Solution Explorer", y agregar un archivo del tipo "cpp" llamado "main_helloFrame".

Agregar el siguiente código:


 //Main header  
 #include "main_hog.h"  
 //Main Programm  
 void main()  
 {  
      Mat image = imread("C:/Users/RivalcobaDev/Pictures/pedestrian/pixelHand.jpg");  
      namedWindow("Output");  
      imshow("Output",image);  
      cout << "End of porcessing!!" << endl;  
      waitKey(0);  
 }  

Tener cuidado en la línea que utiliza la función "imread", escribir una dirección válida de una imagen en tu CPU, observe que las diagonales son en sentido contrario a las que usa el sistema operativo normalmente para declarar rutas de archivos, esta es una regla que se deberá seguir siempre que se desee declarar rutas de archivos.

Note que en la parte superior hay un "header", el cual definiremos a continuación.

Hacer clic secundario sobre la carpeta "Header Files" del "Solution Explorer", seleccionar la opción "Add->New item" y agregar un archivo de tipo ".h" con el nombre "main_helloFrame".

Agregar los enlaces (links) a las librerias de OpenCv:


 #ifndef MAIN_HOG  
 #define MAIN_HOG  
 //OpenCV Linkers  
 #pragma comment(lib, "opencv_core240d.lib")  
 #pragma comment(lib, "opencv_highgui240d.lib")  
 #pragma comment(lib, "opencv_imgproc240d.lib")  
 #pragma comment(lib, "opencv_features2d240d.lib")  
 #pragma comment(lib, "opencv_calib3d240d.lib")  
 #pragma comment(lib, "opencv_objdetect240d.lib")  
 #pragma comment(lib, "opencv_gpu240d.lib")  
 #pragma comment(lib, "opencv_video240d.lib")  
 //OpenCv sources codes  
 #include <opencv2\highgui\highgui.hpp>  
 #include <opencv2\core\core.hpp>  
 //Cpp headers  
 #include<iostream>  
 //name Spaces  
 using namespace std;  
 using namespace cv;  
 #endif  

En primer lugar utilizamos unas directivas de compilador que nos permitirán definir un bloque de código que será creado con la condición de no estar definido anteriormente, en C++ siempre que se estén creando "headers" es muy recomendable englobar todo el código del "Header" mediante esta directiva.

Seguido de eso, encontramos otras directivas del compilador llamadas "Pragma", estas son indispensables para linkear el proyecto con los archivos ".lib" de openCv, sin los cuales sería imposible compilar el proyecto.

Posteriormente tenemos los "inlcudes", en los cuales incluimos las definiciones de los módulos de OpenCV que utilizaremos en el proyecto, los mas importantes son "core.hpp" y "highgui.hpp".

Terminamos con los espacios de nombres donde estan origanizadas las funciones estándar de C++ (std) y OpenCv (cv).

El "Solution Explorer" debiera verse así:




Compilar y Ejecutar con la función F5 y si todo se ha realizado correctamente el programa lee la imagen del directorio y la muestra en una ventana. Para cerrar el programa presionar cualquier tecla.