Aquí, haremos Indian Flag en Python usando la herramienta Spyder, que es parte de la interfaz de Anaconda. Es el problema de práctica del principiante para los programadores de python.
Requisito previo: el único requisito previo para este código es poco conocimiento de la programación básica de python. Puede instalar anaconda desde aquí si no tiene ningún intérprete para python.
Enfoque: Usaremos ecuaciones características simples de líneas y círculos en este código. Se recomienda probar por su cuenta antes de llegar a la solución por completo.
Importe estos 3 paquetes para las funciones utilizadas en este código.
import skimage # for using image processing functions import os from skimage import io # for using imshow function
1. Lee una imagen de al menos las dimensiones esperadas de la bandera.
image2 = io.imread('C:\Users\geeksforgeeks\Desktop\index.jpg')
2. Supongamos que las dimensiones de la bandera son 189 px de alto y 267 px de ancho.
x = 189/2 y = 267/2 r = 189/6
3. Inicie dos bucles for para iterar en cada píxel de la imagen.
for i in range(0, 189): for j in range(0, 267):
Dentro del bucle interior, realice 3-(a) y 3-(b).
3-(a). Al dividir la imagen en 3 partes iguales en altura, colorea la imagen en naranja, blanco y verde.
if i in range(0, 189/3): image2[i][j] = [255, 128, 64] # Color coding for Orange elif i in range(189/3, 189*2/3): image2[i][j] = [255, 255, 255] # Color coding for White else: image2[i][j] = [0, 128, 0] # Color coding for Green
3-(b). Ahora es el momento de dibujar el círculo en el centro del Ashoka Chakra , usando la ecuación del círculo.
if (( pow((x-i), 2) + pow((y-j), 2) ) = pow(r-2, 2)): image2[i][j] = [0, 0, 255]
4. Para dibujar los radios del Chakra , necesitamos usar la ecuación de líneas que permanece dentro del círculo solamente, aquí he dibujado 4 x 2 radios, sin embargo, los 24 radios se pueden dibujar usando 12 ecuaciones, ya que cada línea conduce a dos opuestos. radios
for i in range(189/3, 189*2/3): for j in range(267/3, 267*2/3): if ((i == 189/2) or (j == 267/2) or (i+39 == j or (i+39+j == 266))) and (( pow((x-i), 2) + pow((y-j), 2) ) <= pow(r, 2)) : image2[i][j] = [0, 0, 255]
5. Ahora es el momento de ver nuestra imagen, así que usaremos la función < imshow .
io.imshow(image2)
And Over Indian Flag en solo 5 pasos.
El código general se verá así…
""" @author: geeksforgeeks """ # Packages import skimage import os from skimage import io # Reading image file image2 = io.imread('C:\Users\KRISHNA\Desktop\index.jpg') # Setting dimensions boundaries x = 189 / 2 y = 267 / 2 r = 189 / 6 # Iterating to all the pixels in the set boundaries for i in range(0, 189): for j in range(0, 267): if i in range(0, 189 / 3): image2[i][j] = [255, 128, 64] # Orange Color elif i in range(189 / 3, 189 * 2 / 3): image2[i][j] = [255, 255, 255] # White Color else: image2[i][j] = [0, 128, 0] # Green Color # Equation for 2px thick ring if (( pow((x-i), 2) + pow((y-j), 2) ) <= pow(r + 1, 2)) and(( pow((x-i), 2) + pow((y-j), 2) ) >= pow(r-2, 2)): image2[i][j] = [0, 0, 255] # Blue Color # Iterating within the ring for i in range(189 / 3, 189 * 2 / 3): for j in range(267 / 3, 267 * 2 / 3): # Equation to draw 4 straight lines if ((i == 189 / 2) or (j == 267 / 2) or (i + 39 == j or (i + 39 + j == 266))) and (( pow((x-i), 2) + pow((y-j), 2) ) <= pow(r, 2)) : image2[i][j] = [0, 0, 255] # Blue Color io.imshow(image2) # Output
Producción:
Publicación traducida automáticamente
Artículo escrito por Krishna_Yadav y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA