数染色体 算法 python源码

效果图如下:

原图:

完整代码:

python 复制代码
import cv2
import numpy as np
from skimage import measure
import random


image = cv2.imread('113.jpg', cv2.IMREAD_GRAYSCALE)

blurred_img = cv2.GaussianBlur(image, (5, 5), 0)

_, binary_image = cv2.threshold(blurred_img, 0, 255, cv2.THRESH_BINARY_INV + cv2.THRESH_OTSU)

kernel = np.ones((3, 3), np.uint8)
img2 = cv2.morphologyEx(binary_image, cv2.MORPH_OPEN, kernel, iterations=2)

labels = measure.label(img2, connectivity=2, background=0)
props = measure.regionprops(labels)

output_image = cv2.cvtColor(image, cv2.COLOR_GRAY2BGR)

colors = []
for _ in range(len(props)):
    colors.append((random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)))

chromosome_count = len(props)
chromosome_sizes = []

for i, prop in enumerate(props):
    y, x = prop.centroid
    center = (int(x), int(y))

    cv2.circle(output_image, center, 5, colors[i], -1)

    cv2.putText(output_image, f'{i+1}', (center[0] + 10, center[1]), cv2.FONT_HERSHEY_SIMPLEX, 0.5, colors[i], 1)

    chromosome_sizes.append(prop.area)

print(f"染色体数量: {chromosome_count}")
print(f"每个染色体的尺寸(像素数量): {chromosome_sizes}")

cv2.imshow('img2', img2)
cv2.imshow('output_image', output_image)
cv2.waitKey(0)
cv2.destroyAllWindows()
相关推荐
LNTON羚通4 小时前
摄像机视频分析软件下载LiteAIServer视频智能分析平台玩手机打电话检测算法技术的实现
算法·目标检测·音视频·监控·视频监控
湫ccc5 小时前
《Python基础》之字符串格式化输出
开发语言·python
mqiqe5 小时前
Python MySQL通过Binlog 获取变更记录 恢复数据
开发语言·python·mysql
AttackingLin5 小时前
2024强网杯--babyheap house of apple2解法
linux·开发语言·python
哭泣的眼泪4086 小时前
解析粗糙度仪在工业制造及材料科学和建筑工程领域的重要性
python·算法·django·virtualenv·pygame
湫ccc6 小时前
《Python基础》之基本数据类型
开发语言·python
Microsoft Word6 小时前
c++基础语法
开发语言·c++·算法
天才在此7 小时前
汽车加油行驶问题-动态规划算法(已在洛谷AC)
算法·动态规划
drebander7 小时前
使用 Java Stream 优雅实现List 转化为Map<key,Map<key,value>>
java·python·list
莫叫石榴姐7 小时前
数据科学与SQL:组距分组分析 | 区间分布问题
大数据·人工智能·sql·深度学习·算法·机器学习·数据挖掘