数染色体 算法 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()
相关推荐
玉树临风江流儿3 分钟前
关于pkg-config的使用示例--g++编译过程引入第三方库(如Opencv、Qt)
人工智能·opencv
ZhengEnCi13 分钟前
CMD 与 Python 完全区别指南-小白必看的编程入门解惑宝典
windows·python
凸头14 分钟前
以AtomicInteger为例的Atomic 类的底层CAS细节理解
java·jvm·算法
Hs_QY_FX22 分钟前
逻辑回归实战:泰坦尼克号生存预测
python·逻辑回归
前端小刘哥1 小时前
赋能在线教育与企业培训:视频直播点播平台EasyDSS视频点播的核心技术与应用实践
算法
惜月_treasure1 小时前
LlamaIndex多模态RAG开发实现详解
开发语言·python·机器学习
吗~喽1 小时前
【LeetCode】四数之和
算法·leetcode·职场和发展
扶尔魔ocy1 小时前
python 部署可离线使用的中文识别OCR(window)
python·中文识别·cnocr
Net_Walke1 小时前
【散列函数】哈希函数简介
算法·哈希算法
一晌小贪欢2 小时前
Python爬虫第4课:XPath与lxml高级解析技术
开发语言·爬虫·python·网络爬虫·python爬虫·python3·python办公