图像处理入门:用Python数星星

图像处理是一个令人着迷的领域,它不仅能够实现自动标记照片,还能创建人脸识别密码等。本文将介绍一个简单但有趣的图像处理应用——使用Python来数星星。这个想法源于小时候数星星的经历,现在将借助机器的力量来完成这个任务。

准备工作

在开始之前,需要导入一些必要的Python库。Skimage是一个强大的图像处理库,它让能够轻松地处理图像。以下是需要导入的库:

import numpy as np from skimage import io from skimage.color import rgb2gray from skimage.feature import blob_dog, blob_log, blob_doh import matplotlib.pyplot as plt

导入图像

接下来,将图像文件导入到Python中。这里使用的是灰度模式,这意味着每个像素都是灰度值。图像将被转换成一个480x581的矩阵。以下是导入图像的代码示例:

image_path = 'path_to_your_image.jpg' image = io.imread(image_path, as_gray=True) plt.imshow(image, cmap='gray') plt.show()

计算星星数量

blobs_log = blob_log(image, max_sigma=30, num_sigma=10, threshold=.1) num_stars = len(blobs_log) print("计算出的星星数量: ", num_stars) fig, ax = plt.subplots(1, 1, figsize=(10, 10)) ax.imshow(image, cmap='gray') for blob in blobs_log: y, x, r = blob circle = plt.Circle((x, y), r, color='lime', linewidth=2, fill=False) ax.add_patch(circle) plt.show()
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485