📜  用Python制作印度国旗的程序|英特尔®开发人员专区一步步

📅  最后修改于: 2021-06-26 21:58:27             🧑  作者: Mango

在这里,我们将使用作为Anaconda界面一部分的Spyder工具在Python制作印度国旗。对于Python程序员来说,这是初学者的实践问题。

先决条件:此代码的唯一先决条件是对基本Python编程的了解很少。如果您没有任何Python解释器,则可以从这里安装anaconda。

方法:我们将在此代码中使用简单的直线和圆的特征方程。建议您在完全解决之前,先尝试一下。

导入这3个软件包以实现此代码中使用的功能。

import skimage               # for using image processing functions
import os
from skimage import io       # for using imshow function

1.至少读取标志预期尺寸的图像。

image2 = io.imread('C:\Users\geeksforgeeks\Desktop\index.jpg')

2.让我们假设标志的尺寸为189px高和267px宽。

x = 189/2
y = 267/2
r = 189/6

3.开始两个for循环,以迭代到图像的每个像素。

for i in range(0, 189):
    for j in range(0, 267):

在内部循环内执行3-(a)和3-(b)。

3-(a)。通过将图像分成3个等高的颜色,可以将图像分为橙色,白色和绿色。

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
io.imshow(image2)

io.imshow(image2)

3-(b)。现在是时候使用圆的方程在Ashoka Chakra的中心绘制圆了。

if (( pow((x-i), 2) + pow((y-j), 2) ) = pow(r-2, 2)):
            image2[i][j] = [0, 0, 255]
io.imshow(image2)

io.imshow(image2)

4.要绘制脉轮的辐条,我们需要使用仅在圆内的直线方程,这里我绘制了4 x 2辐条,但是可以使用12个方程式绘制所有24个辐条,因为每条线通向两个相反的方向辐条。

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.现在是时候查看我们的图像了,所以我们将使用< imshow 函数。

io.imshow(image2)

只需5个步骤,即可越过印度国旗。

整个代码看起来像这样……

"""
@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

输出:

输出

如果您希望与行业专家一起参加现场课程,请参阅《 Geeks现场课程》和《 Geeks现场课程美国》。