在Python中,可以使用`print`函数和字符串格式化来输出各种图形。以下是一些示例代码,展示了如何输出不同的图形:
输出矩形
width = 10
height = 5
for i in range(height):
print('*' * width)
输出直角三角形
height = 5
for i in range(1, height + 1):
print('*' * i)
输出倒直角三角形
height = 5
for i in range(height, 0, -1):
print('*' * i)
输出菱形
size = 5
for i in range(1, size, 2):
print(' ' * ((size - i) // 2) + '*' * i + ' ' * ((size - i) // 2))
for i in range(size, 0, -2):
print(' ' * ((size - i) // 2) + '*' * i + ' ' * ((size - i) // 2))
输出星号组成的正方形
n = int(input("请输入正方形的边长(1~20):"))
if 1 <= n <= 20:
for i in range(n):
print('*' * n)
else:
print("输入的边长不在有效范围内,请输入1~20之间的整数。")
使用OpenCV生成凸包图
import cv2
import numpy as np
def generate_poly(image, n, area_thresh):
contours, hierarchy = cv2.findContours(image, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
cnt = contours
M = cv2.moments(cnt)
if M['m00'] != 0:
cx = int(M['m10'] / M['m00'])
cy = int(M['m01'] / M['m00'])
convex_hull = cv2.convexHull(cnt, True)
cv2.circle(image, (cx, cy), 5, (0, 255, 0), -1)
for i in range(len(convex_hull)):
cv2.line(image, convex_hull[i], convex_hull[(i + 1) % len(convex_hull)], (0, 0, 255), 2)
return image
else:
return None
读取二值图
image = cv2.imread('path_to_binary_image.png', 0)
生成凸包图
convex_hull_image = generate_poly(image, 8, 100)
显示凸包图
cv2.imshow('img_hull', convex_hull_image)
cv2.waitKey()
cv2.destroyAllWindows()
请注意,上述代码示例中的`path_to_binary_image.png`需要替换为实际图像文件的路径。
这些示例展示了如何使用Python输出简单的图形。你可以根据需求自定义输出更复杂的图形。如果你需要输出其他类型的图形,比如线图、条形图、饼图或散点图,可以使用Python的`matplotlib`或`seaborn`等图形库。