Desarrollo de Software en C++, C#, PHP,JavaScript, Matlab, Java, Android, Arduino, Python, Flutter, React, Vue, Solución de ejercicios, Programas informáticos, Inteligencia Artificial.

Buscar

Métodos de Ordenamiento QuickSort en C++ - Código Fuente

QuickSort (en inglés, ordenamiento rápido). Es un algoritmo basado en la técnica de divide y vencerás, que permite, en promedio, ordenar n elementos en un tiempo proporcional a n log n.

El algoritmo fundamental es el siguiente:
  • Elegir un elemento de la lista de elementos a ordenar, al que llamaremos pivote.
  • Resituar los demás elementos de la lista a cada lado del pivote, de manera que a un lado queden todos los menores que él, y al otro los mayores. En este momento, el pivote ocupa exactamente el lugar que le corresponderá en la lista ordenada.
  • La lista queda separada en dos sublistas, una formada por los elementos a la izquierda del pivote, y otra por los elementos a su derecha.
  • Repetir este proceso de forma recursiva para cada sublista mientras éstas contengan más de un elemento. Una vez terminado este proceso todos los elementos estarán ordenados. Como se puede suponer, la eficiencia del algoritmo depende de la posición en la que termine el pivote elegido.
  • En el mejor caso, el pivote termina en el centro de la lista, dividiéndola en dos sublistas de igual tamaño. En este caso, el orden de complejidad del algoritmo es O(n·log n).
  • En el peor caso, el pivote termina en un extremo de la lista. El orden de complejidad del algoritmo es entonces de 0(n²). El peor caso dependerá de la implementación del algoritmo, aunque habitualmente ocurre en listas que se encuentran ordenadas, o casi ordenadas.
  • En el caso promedio, el orden es O(n·log n).

Eficiencia del algoritmo
La eficiencia del algoritmo depende de la posición en la que termine el pivote elegido. En el mejor caso, el pivote termina en el centro de la lista, dividiéndola en dos sublistas de igual tamaño. En este caso, el orden de complejidad del algoritmo es O(n•log n). En el peor caso, el pivote termina en un extremo de la lista. El orden de complejidad del algoritmo es entonces de O(n²). El peor caso dependerá de la implementación del algoritmo, aunque habitualmente ocurre en listas que se encuentran ordenadas, o casi ordenadas. Pero principalmente depende del pivote, si por ejemplo el algoritmo implementado toma como pivote siempre el primer elemento del array, y el array que le pasamos está ordenado, siempre va a generar a su izquierda un array vacío, lo que es ineficiente. En el caso promedio, el orden es O(n•log n). Y no es extraño, pues, que la mayoría de optimizaciones que se aplican al algoritmo se centren en la elección del pivote.

Optimización del algoritmo
Cabe destacar que de usarse en su versión recursiva las siguientes optimizaciones y sus desventajas no se ven vistas en el tiempo de ejecución del mismo manteniéndose, así el tiempo de ejecución planteado en un principio.

Técnicas de elección del pivote
El algoritmo básico del método Quicksort consiste en tomar cualquier elemento de la lista al cual denominaremos como pivote, dependiendo de la partición en que se elija, el algoritmo será más o menos eficiente.
Tomar un elemento cualquiera como pivote tiene la ventaja de no requerir ningún cálculo adicional, lo cual lo hace bastante rápido. Sin embargo, esta elección «a ciegas» siempre provoca que el algoritmo tenga un orden de O(n²) para ciertas permutaciones de los elementos en la lista.
Otra opción puede ser recorrer la lista para saber de antemano qué elemento ocupará la posición central de la lista, para elegirlo como pivote. Esto puede hacerse en O(n) y asegura que hasta en el peor de los casos, el algoritmo sea O(n•log n). No obstante, el cálculo adicional rebaja bastante la eficiencia del algoritmo en el caso promedio.
La opción a medio camino es tomar tres elementos de la lista - por ejemplo, el primero, el segundo, y el último - y compararlos, eligiendo el valor del medio como pivote.

Técnicas de reposicionamiento
Una idea preliminar para ubicar el pivote en su posición final sería contar la cantidad de elementos menores que él, y colocarlo un lugar más arriba, moviendo luego todos esos elementos menores que él a su izquierda, para que pueda aplicarse la recursividad.

Existe, no obstante, un procedimiento mucho más efectivo. Se utilizan dos índices: i, al que llamaremos índice izquierdo, y j, al que llamaremos índice derecho. El algoritmo es el siguiente:

Recorrer la lista simultáneamente con i y j: por la izquierda con i (desde el primer elemento), y por la derecha con j (desde el último elemento). Cuando lista[i] sea mayor que el pivote y lista[j] sea menor, se intercambian los elementos en esas posiciones.

Repetir esto hasta que se crucen los índices.
El punto en que se cruzan los índices es la posición adecuada para colocar el pivote, porque sabemos que a un lado los elementos son todos menores y al otro son todos mayores (o habrían sido intercambiados).

Funcionamiento
  1. Se debe llamar a la función Quicksort desde donde quiera ejecutarse.
  2. Ésta llamará a colocar pivote para encontrar el valor del mismo.
  3. Se ejecutará el algoritmo Quicksort de forma recursiva a ambos lados del pivote.
Métodos de Ordenamiento QuickSort en C++ - Código Fuente


#include<iostream> #include<conio.h> #include<iomanip> using namespace std; void quicksort(double [20],int, int); void escribir(double [20],int ); int main() { int i,nro; double B[20]; cout<<"ingrese la dimension del arreglo"<<endl<<endl; cin>>nro; cout<<"ingrese elementos del arreglo"<<endl<<endl; for(i=0;i<nro;i++) { cout<<"B["<<i<<"]= "; cin>>B[i]; } cout<<"ARREGLO ORIGINAL"<<endl<<endl; for(i=0;i<nro;i++) { cout<<B[i]<<setw(5); } quicksort(B,0,nro-1); escribir(B,nro); getch(); //delete B; return 0; } void quicksort(double A[20],int primero,int ultimo) { int central,i,j; double pivote; central=(primero+ultimo)/2; pivote=A[central]; i=primero; j=ultimo; do { while(A[i]<pivote) i++; while(A[j]>pivote) j--; if(i<=j) { double temp; temp=A[i]; A[i]=A[j]; /*intercambia A[i] con A[j] */ A[j]=temp; i++; j--; } } while(i<=j); if(primero<j) quicksort(A,primero,j); /*mismo proceso con sublista izquierda*/ if(i<ultimo) quicksort(A,i,ultimo); /*mismo proceso con sublista derecha*/ } void escribir(double A[20], int n) { int i; cout<<endl<<"ARREGLO ORDENADO POR METODO DE QUICKSORT "<<endl<<endl; for(i=0;i<n;i++) { cout<<A[i]<<setw(5); } cout<<endl<<endl; }





















Share:

Métodos de Ordenamiento MergeSort en C++ - Código Fuente

Definición
Consiste en dividir el problema a resolver en subproblemas del mismo tipo que a su vez se dividirán, mientras no sean suficientemente pequeños o triviales.

Pasos

1: Ordenar una secuencia S de elementos:
Si S tiene uno o ningún elemento, está ordenada
Si S tiene al menos dos elementos se divide en dos secuencias S1 y S2, S1 conteniendo los primeros n/2, y S2 los restantes.
2: Ordenar S1 y S2, aplicando recursivamente este procedimiento.
Mezclar S1 y S2 ordenadamente en S
Mezclar dos secuencias ordenadas S1 y S2 en S:
Se tienen referencias al principio de cada una de las secuencias a mezclar (S1 y S2).
Mientras en alguna secuencia queden elementos, se inserta en la secuencia resultante (S) el menor de los elementos referenciados y se avanza esa referencia una posición.

Complejidad del algoritmo
Para ordenar un arreglo de tamaño n se ordenan 2 arreglos de tamaño n/2, de aquí el 2T(n/2), y luego se consume O(n) en realizar la mezcla. Resolviendo la ecuación recurrente tenemos que T(n) = O(n log n).

Propiedades

  1. Es Estable.
  2. Memoria Auxiliar O(n).
  3. No ordena en el lugar.
  4. Es O(n log n).


Métodos de Ordenamiento MergeSort en C++ - Código Fuente

#include<iostream> #include<conio.h> using namespace std; int a[50]; void merge(int,int,int); void merge_sort(int izquierda,int derecha){ int medio; if(izquierda<derecha){ medio=(izquierda+derecha)/2; merge_sort(izquierda,medio); merge_sort(medio+1,derecha); merge(izquierda,medio,derecha); } } void merge(int izquierda,int medio,int derecha){ int h,i,j,b[50],k; h=izquierda; i=izquierda; j=medio+1; while((h<=medio)&&(j<=derecha)){ if(a[h]<=a[j]){ b[i]=a[h]; h++; } else { b[i]=a[j]; j++; } i++; } if(h>medio){ for(k=j;k<=derecha;k++){ b[i]=a[k]; i++; } } else { for(k=h;k<=medio;k++){ b[i]=a[k]; i++; } } for(k=izquierda;k<=derecha;k++){ a[k]=b[k]; } } int main(){ int num,i; cout<<" *******************************"<<endl; cout<<" PROGRAMA MERGE SORT "<<endl; cout<<" ****************************** "<<endl; cout<<endl<<endl; cout<<"INGRESE LA CANTIDAD DE ELEMENTOS"<<endl; cin>>num; cout<<endl; cout<<"LOS ELEMENTOS SON:"<<endl; for(i=1;i<=num;i++){ cin>>a[i] ; } merge_sort(1,num); cout<<endl; cout<<endl<<endl; cout<<"EL NUEVO ORDEN DE ELEMENTOS ES:"<<endl; for(i=1;i<=num;i++){ cout<<a[i]<<" "; } return 0; }






Share:

Métodos de Ordenamiento ShellSort en C++ - Código Fuente



















Algoritmo de ordenamiento Shell
El método se denomina así en honor de su inventor Donald Shell. Su implementación original, requiere O(n2) comparaciones e intercambios en el peor caso, aunque un cambio menor presentado en el libro de V. Pratt produce una implementación con un rendimiento de O(n log2 n) en el peor caso. Esto es mejor que las O(n2) comparaciones requeridas por algoritmos simples pero peor que el óptimo O(n log n).

El Shell sort es una generalización del ordenamiento por inserción, teniendo en cuenta dos observaciones: El ordenamiento por inserción es eficiente si la entrada está "casi ordenada". El ordenamiento por inserción es ineficiente, en general, porque mueve los valores sólo una posición cada vez.

El algoritmo Shell sort mejora el ordenamiento por inserción comparando elementos separados por un espacio de varias posiciones. Esto permite que un elemento haga "pasos más grandes" hacia su posición esperada. Los pasos múltiples sobre los datos se hacen con tamaños de espacio cada vez más pequeños. El último paso del Shell sort es un simple ordenamiento por inserción, pero para entonces, ya está garantizado que los datos del vector están casi ordenados.

Descripción 

El algoritmo Shell es una mejora de la ordenación por inserción, donde se van comparando elementos distantes, al tiempo que se los intercambian si corresponde. A medida que se aumentan los pasos, el tamaño de los saltos disminuye; por esto mismo, es útil tanto como si los datos desordenados se encuentran cercanos, o lejanos.

Es bastante adecuado para ordenar listas de tamaño moderado, debido a que su velocidad es aceptable y su codificación es bastante sencilla. Su velocidad depende de la secuencia de valores con los cuales trabaja, ordenándolos.El siguiente ejemplo muestra el proceso de forma gráfica:

Considerando un valor pequeño que está inicialmente almacenado en el final del vector. Usando un ordenamiento O(n2) como el ordenamiento de burbuja o el ordenamiento por inserción, tomará aproximadamente n comparaciones e intercambios para mover este valor hacia el otro extremo del vector.

El Shell sort primero mueve los valores usando tamaños de espacio gigantes, de manera que un valor pequeño se moverá bastantes posiciones hacia su posición final, con sólo unas pocas comparaciones e intercambios.

Métodos de Ordenamiento ShellSort en C++ - Código Fuente


#include<iostream> #include<conio.h> using namespace std; int Arreglo[100]; void LeerArreglo(int Numero); void EscribeArreglo(int Numero); void Shell(int Numero); int main(){ int Num; cout<<"Ingrese dimension del arreglo : "; cin>>Num; LeerArreglo(Num); Shell(Num); cout<<endl; EscribeArreglo(Num); return 0; } void LeerArreglo(int Numero){ int i; for(i=1;i<=Numero;i++) { cout<<"Arreglo["<<i<<"]="; cin>>Arreglo[i]; } } void EscribeArreglo(int Numero){ int i; cout<<"elementos ordenados por metodo Shell sort"<<endl; for(i=1;i<=Numero;i++) { cout<<"\t"<<Arreglo[i]; } } void Shell(int Numero){ int i,j,k,incremento,aux; incremento=Numero/2; while(incremento>0){ for(i=incremento+1;i<=Numero;i++){ j=i-incremento; while(j>0){ if(Arreglo[j]>=Arreglo[j+incremento]){ aux = Arreglo[j]; Arreglo[j] = Arreglo[j+incremento]; Arreglo[j+incremento] = aux; } else{ j=0; } j=j-incremento; } } incremento=incremento/2; } }
Share:

Métodos de Ordenamiento ShakerSort en C++ - Código Fuente




















Métodos de ordenamiento

Es la operación mediante la cual permite arreglar u organizar datos de una tabla o lista de una forma adecuada y principalmente secuencial teniendo en cuenta un  criterio de ordenamiento. El ordenamiento se puede realizar siempre que exista un valor como requisito en algún lugar o campo. El principal objetivo  de los métodos de ordenamiento, es que permita facilitar y agilizar la búsqueda de miembros o valores de un conjunto ordenado.

Cuando se habla de ordenamiento de datos significa mover los datos y dichas referencias, las cuales permitan una secuencia tal que represente un orden. dicho orden puede ser numérico, alfabético o incluso alfanumérico.

Los métodos de ordenamiento en el campo de estructura de datos son esenciales puesto que permiten almacenar información, recuperar información de una manera eficiente y coherente. El rol de los métodos de ordenamiento es ordenar una serie o grupo de datos, dichas acciones implican mover datos que queden en una secuencia la cual represente un orden.

Ordenación Shaker
El algoritmo de ordenación por el método Shaker, también conocido como "Cocktail" o "Sacudida" es una mejora del método de la burbuja en la cual el proceso se realiza tanto desde la primera posición a la última del arreglo como en sentido inverso, evitando así que los elementos más pequeños tarden un mayor tiempo
en "ascender" a las posiciones superiores.


Este método permite organizar, ordenamiento e intercambio directo de elementos del arreglo. Prácticamente la idea básica de este algoritmo consiste en intercambiar, mezclar. existen dos formas en que se pueda realizar este algoritmo cada pasada tiene 2 pasadas.En la primera pasada, es de derecha a izquierda se trasladan los elementos mas pequeños hacia la izquierda del arreglo (almacenando la posición del ultimo elemento intercambiado) en la segunda pasada de izquierda a derecha se trasladan los elementos mas grandes hacia la derecha del arreglo almacenando en otra variable la posición del ultimo elemento intercambiado. Este método de ordenamiento permite visualizar la forma, en la cual se puede organizar datos desordenados que al final serán ordenados de una forma secuencial.


 Métodos de Ordenamiento ShakerSort en C++ - Código Fuente 

#include<conio.h> #include<stdio.h> #include<stdlib.h> #include<iostream> using namespace std; int main(){ int i, k, Der, Izq, Aux, N, A[30]; cout<<"METODO DE ORDENAMIENTO - SHAKER SORT"<<endl; cout<<"Ingrese el tama�o del arreglo : "<<endl; cin>>N; k=N; Izq=2; Der=N; for(i=1;i<=N;i++){ cout<<"\tA["<<i<<"] : "; cin>>A[i]; } do{//inicio del ordenamiento for(i=Der;i>=Izq;i--){//derecha a izquierda if(A[i-1]>A[i]){ Aux=A[i-1]; A[i-1]=A[i]; A[i]=Aux; k=i; } } Izq=k+1; for(i=Izq;i<=Der;i++)//izquierda a derecha if(A[i-1]>A[i]){ Aux=A[i-1]; A[i-1]=A[i]; A[i]=Aux; k=i; } Der=k-1; }while(Izq<Der);//Fin del ordenamiento cout<<"\n\tArreglo Ordenado\n\t==================\n"; for(i=1;i<=N;i++) cout<<"\t"<<A[i]; cout<<endl<<"\t"; system("pause"); return 0; getch(); }












































Share:

Métodos de Ordenamiento InsertionSort en C++ - Código Fuente


El ordenamiento por inserción (insertion sort en inglés) es una manera muy natural de ordenar para un ser humano, y puede usarse fácilmente para ordenar un mazo de cartas numeradas en forma arbitraria. Requiere O(n²) operaciones para ordenar una lista de n elementos.

Inicialmente se tiene un solo elemento, que obviamente es un conjunto ordenado. Después, cuando hay k elementos ordenados de menor a mayor, se toma el elemento k+1 y se compara con todos los elementos ya ordenados, deteniéndose cuando se encuentra un elemento menor (todos los elementos mayores han sido desplazados una posición a la derecha) o cuando ya no se encuentran elementos (todos los elementos fueron desplazados y este es el más pequeño). En este punto se inserta el elemento k+1 debiendo desplazarse los demás elementos.

Aplicaciones de Insertion Sort

Debido a que el algoritmo es útil sólo para ordenar arreglos pequeños, en la práctica no es muy utilizado como algoritmo central para ordenar un conjunto de datos, sino más bien se usa como complemento de otros tipos de ordenamientos más avanzados.

Por ejemplo, se puede utilizar Insertion Sort para mejorar el uso de Quicksort (uno de lo algoritmos de ordenamiento más usados y el más eficiente para uso general). En este caso, Insertion Sort se puede ocupar para ordenar los sub-arreglos pequeños que van quedando al finalizar la ejecución de Quicksort, optimizando de esta manera dicho algoritmo, ya que Insertion Sort es más eficiente ordenando arreglos de poco tamaño.


Insertion Sort fue también inspiración para la creación de Shell Sort por parte del informático Donald Shell. Shell Sort es una generalización que mejora el algoritmo de Insertion Sort que permite que el elemento a insertar avance varios espacios hacia su posición correcta, en lugar de uno solo como en Insertion Sort, lo cual lo hace más rápido y eficiente.

Métodos de Ordenamiento Insertion Sort en C++ - Código Fuente
Share:

Métodos de Ordenamiento SelectionSort en C++ - Código Fuente


Descripción

Este algoritmo mejora ligeramente el algoritmo de la burbuja. En el caso de tener que ordenar un vector de enteros, esta mejora no es muy sustancial, pero cuando hay que ordenar un vector de estructuras más complejas, la operación de intercambiar los elementos sería más costosa en este caso. Su funcionamiento se puede definir de forma general como:

  • Buscar el mínimo elemento entre una posición i y el final de la lista
  • Intercambiar el mínimo con el elemento de la posición i

Análisis del Costo Computacional


El ciclo externo se ejecuta n veces para una lista de n elementos, o sea que para ordenar un vector de n términos, tiene que realizar siempre el mismo número de comparaciones. c(n)= (n2-n)/2 Cada búsqueda requiere comparar todos los elementos no clasificados, de manera que el número de comparaciones c(n) no depende del orden de los términos, si no del número de términos; por lo que este algoritmo presenta un comportamiento constante independiente del orden de los datos. Luego la complejidad es del orden n2.

Estabilidad, Ventajas y Desventajas

Puede que exista algo de discrepancia en cuanto a si es o no estable este algoritmo, pero en realidad esta implementación parece ser bastante estable. Se puede verificar esto ordenando un conjunto de datos que tenga un par de ellos con la misma clave. Se vera claramente que el orden relativo entre ellos es conservado. Algunos autores no lo consideran asi, pero independientemente de esto, este algoritmo tienes entre sus ventajas: Es fácil su implementación. No requiere memoria adicional. Realiza pocos intercambios. Tiene un rendimiento constante, pues existe poca diferencia entre el peor y el mejor caso. Como todos también tiene algunas desventajas: Es lento y poco eficiente cuando se usa en listas grandes o medianas. Realiza numerosas comparaciones.


Métodos de Ordenamiento Selection Sort en C++ - Código Fuente


Share:

Método de Ordenamiento BubbleSort (Burbuja) en C++ - Código Fuente


Algoritmo de ordenamiento. Burbuja(Bubble Sort en inglés) es un sencillo algoritmo de ordenamiento. Funciona revisando cada elemento de la lista que va a ser ordenada con el siguiente, intercambiándolos de posición si están en el orden equivocado. Es necesario revisar varias veces toda la lista hasta que no se necesiten más intercambios, lo cual significa que la lista está ordenada. Este algoritmo obtiene su nombre de la forma con la que suben por la lista los elementos durante los intercambios, como si fueran pequeñas burbujas. También es conocido como el método del intercambio directo. Dado que solo usa comparaciones para operar elementos, se lo considera un algoritmo de comparación, siendo el más sencillo de implementar.

Aplicación
A pesar de que el ordenamiento de burbuja es uno de los algoritmos más sencillos de implementar, su orden O(n2) lo hace muy ineficiente para usar en listas que tengan más que un número reducido de elementos. Incluso entre los algoritmos de ordenamiento de orden O(n2), otros procedimientos como el ordenamiento por inserción son considerados más eficientes. Dada su simplicidad, el ordenamiento de burbuja es utilizado para introducir el concepto de algoritmo de ordenamiento para estudiantes de ciencias de la computación. A pesar de esto, algunos investigadores como Owen Astrachan han criticado su popularidad en la enseñanza de ciencias de la computación, llegando a recomendar su eliminación de los planes de estudio. Sumado a esto, Jargon File, un libro ampliamente citado en la cultura hacker, lo denomina "el mal algoritmo genérico", y Donald Knuth, uno de los mayores expertos en ciencias de la computación, afirma que el ordenamiento de burbuja "no parece tener nada para recomendar su uso, a excepción de un nombre pegajoso y el hecho de que conlleva a problemas teóricos interesantes". El ordenamiento de burbuja es asintóticamente equivalente, en tiempos de ejecución, con el ordenamiento por inserción en el peor de los casos, pero ambos algoritmos difieren principalmente en la cantidad de intercambios que son necesarios. Resultados experimentales como los descubiertos por Astrachan han demostrado que el ordenamiento por inserción funciona considerablemente mejor incluso con listas aleatorias. Por esta razón, muchos libros de algoritmos modernos evitan usar el ordenamiento de burbuja, reemplazándolo por el ordenamiento por inserción. El ordenamiento de burbuja interactúa vagamente con el hardware de las CPU modernas. Requiere al menos el doble de escrituras que el ordenamiento por inserción, el doble de pérdidas de cache, y asintóticamente más predicción de saltos. Varios experimentos de ordenamiento de cadenas en Java hechos por Astrachan muestran que el ordenamiento de burbuja es 5 veces más lento que el ordenamiento por inserción, y 40% más lento que el ordenamiento por selección.


Método de Ordenamiento BubbleSort (Burbuja) en C++ - Código Fuente

Share:

Crear un Menú de Opciones en C# | Cambiar color de fondo y letra en modo Consola en C#




- Aprenderás a crear un Menú de opciones en C# en modo consola como aplicación de la sentencia de control Do While, con múltiples ejercicios desarrollados en Visual Studio 2015.



- Aprende a Como cambiar los colores de texto y de fondo de la consola en C#.


- Aquí les muestro como cambiar el color de fondo y de la letra en la terminal de C# con unos sencillos pasos.








Crear un Menú de Opciones en C# | Cambiar color de fondo y letra en modo Consola en C# 









Share:

Árbol Familiar | Árbol Genealógico en Prolog


A continuación creamos el árbol genealógico:

Para realizar este ejercicio tenemos que descargar el software Prolog del siguiente enlace: http://www.swi-prolog.org/download/stable

Para el ejercicio de arriba tendremos el  siguiente código fuente que se escribe con el siguiente formato: 



Ahora comenzaremos a realizar preguntas al programa siguiendo la sintaxis definida:

1.- ¿Quién es mi papá?
2.- ¿Quién es mi mamá?
3.- ¿Quién es mi abuelo?
4.- ¿Quién es mi abuela?
5.- ¿Quién es mi hermana?



1.- ¿Quién es mi tío?
2.- ¿Quién es mi tía?
3.- ¿Es hijo Renato?
4.- ¿Es hija Paola?



5.- ¿Es hermano Renato de Paola?
6.- ¿Es hermana Ana de Jose?


7. -¿Quiénes son nuestros abuelos?



Árbol Familiar | Árbol Genealógico en Prolog | Código Fuente



Share:

Como extraer texto de una imagen usando la libreria TESSERACT en C#


COMO EXTRAER TEXTO DE UNA IMAGEN CON TESSERACT EN C#

Paso 1: En el siguiente programa se muestra una forma de extraer texto de una imagen.
Paso 2: Para ello utilizaremos una librería llamada tesseract.
Paso 3: Seguidamente utilizaremos en IDE - Visual studio 2017.
Paso 4: Utilizando el lenguaje de programación C#.
Paso 5: Creamos un nuevo proyecto, en la cual diseñamos la siguiente ventana con las opciones necesarias.
Paso 6: Instalamos en el mismo proyecto la librería tesseract, desde el administrador de paquetes Nuget con el siguiente comando.
                                 PM> Install-Package Tesseract -Version 3.3.0


Paso 7: Para más información accede a la siguiente pagina.
https://www.nuget.org/packages/Tesseract/


COMO EXTRAER TEXTO DE UNA IMAGEN CON TESSERACT EN C# - VISUAL STUDIO 2017



Share:

DISCULPA LAS MOLESTIAS, LA PUBLICIDAD NOS AYUDA

Para descargar Aguarda 5 seg. y luego hacer click en saltar publicidad...Gracias !!

Saltar Publicidad

Translate

FACEBOOK

Ayúdanos con tu donación !

Etiquetas

twitter.com

Páginas vistas

Labels