一见到你呀 2024-09-09 22:06 采纳率: 0%
浏览 6

为什么python调用stardist识别细胞的结果这么差

为什么python调用stardist识别细胞的结果这么差,imagej里的识别结果就是正常的,参数什么的也都调的一样的

img

import numpy as np
import matplotlib.pyplot as plt
from stardist.models import StarDist2D
from stardist import random_label_cmap
from skimage import io
from skimage.color import gray2rgb
import cv2

lbl_cmap = random_label_cmap()

model = StarDist2D.from_pretrained('2D_versatile_fluo')

image = io.imread('MAX_Image-37.png')

re,th1=cv2.threshold(image ,127,255,cv2.THRESH_BINARY)

kernel = np.ones((5, 5), np.uint8)


kernel = np.ones((3,3),np.uint8)
erosion = cv2.erode(th1,None,iterations = 1)

labels, details = model.predict_instances(
    erosion,
    prob_thresh=0.3,
    nms_thresh=0.5
)

plt.figure(figsize=(10, 10))
plt.subplot(1, 2, 1)
plt.imshow(image, cmap='gray')
plt.title('Original Image')

plt.subplot(1, 2, 2)
plt.imshow(gray2rgb(image), cmap='gray')
plt.imshow(labels, cmap=lbl_cmap, alpha=0.5)
plt.title('Segmented Cells')
plt.show()

  • 写回答

1条回答 默认 最新

  • 一轮明月照丘壑 2024-09-09 22:07
    关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    从您给出的描述和代码来看,您在Python中使用Stardist进行细胞识别时遇到了结果不理想的问题,而在ImageJ中的识别结果正常。可能的原因有很多,以下是一些建议和可能的原因:

    1. 图像预处理: 在使用Stardist进行实例分割之前,对图像的预处理是非常重要的。从您的代码中可以看到,您使用了阈值处理和腐蚀操作。这些操作可能会改变图像的性质,导致Stardist识别结果不理想。确保您的预处理步骤是正确的并且适合于您的数据。
    2. 模型选择: 您使用的模型是StarDist2D.from_pretrained('2D_versatile_fluo')。这个模型是为特定的数据集和任务预训练的。如果您的数据与预训练模型的数据分布差异很大,可能会导致识别效果不佳。您可以尝试使用其他预训练模型或自行训练一个模型。
    3. 参数调整: 您设置的prob_threshnms_thresh参数可能不适合您的数据。尝试调整这些参数的值,看看是否可以改善结果。
    4. 输入图像的质量: 输入图像的质量对识别结果有很大影响。确保您的输入图像清晰、无噪声,并且细胞与背景的对比度良好。
    5. 对比ImageJ: ImageJ使用的算法可能与Stardist不同。可能ImageJ的算法在某些情况下更适合您的数据。您可以尝试了解ImageJ使用的具体算法,并尝试在Python中实现相同的算法,以进行比较。
    6. 代码细节: 请确保您的代码中没有错误或遗漏,尤其是与图像处理和模型预测相关的部分。

    为了改进结果,您可以尝试以下步骤:

    1. 简化图像预处理步骤,或尝试不同的预处理步骤。
    2. 尝试使用不同的预训练模型。
    3. 调整prob_threshnms_thresh的值。
    4. 检查输入图像的质量,并尝试使用不同的图像。
    5. 如果可能的话,尝试在Python中实现与ImageJ相同的算法。

    最后,建议您查看Stardist的官方文档和教程,了解更多关于如何使用该库的信息,并尝试使用其提供的建议和示例来改进您的结果。

    评论

报告相同问题?

问题事件

  • 创建了问题 9月9日

悬赏问题

  • ¥15 WangEditor嵌入到geeker-admin中,回车没有办法换行
  • ¥30 stm32f103c8t6制作万能红外遥控器
  • ¥15 有人会fastcrud写前端页面吗
  • ¥15 如何解除Uniaccess管控
  • ¥15 微信小程序跳转关联公众号
  • ¥15 Java AES 算法 加密采用24位向量报错如何处理?
  • ¥15 使用X11可以找到托盘句柄,监控到窗口点击事件但是如何在监听的同时获取托盘中应用的上下文菜单句柄
  • ¥45 字符串操作——数组越界问题
  • ¥15 Loss下降到0.08时不在下降调整学习率也没用
  • ¥15 QT+FFmpeg使用GPU加速解码