【问题标题】:Python Image tutorial works, other images behaves differently (showing images with Pylab)Python 图像教程有效,其他图像表现不同(使用 Pylab 显示图像)
【发布时间】:2015-03-17 20:33:45
【问题描述】:

我刚开始尝试 Python 和图像处理。我遵循了这个结构非常好的教程:http://pythonvision.org/basic-tutorial/。教程中的所有内容似乎都可以正常工作,并提供了图像(带有单元格的图像)。现在我想尝试输入另一个图像时它的行为方式。所以我拍了另一张图片(这篇文章底部的那张),突然之间东西的行为变得不同了。首先,pylab.show() 不显示图像热图而是显示常规图像,而当没有定义颜色图时它应该给出热图。

由于这个原因,一切都表现不同,它只识别一个组件(所有不是白色的)。我错过了什么?输入图像是否必须是黑白/灰度? .jpg 和 .jpeg 重要吗?

我似乎找不到问题,我们将不胜感激。

此代码应提供默认的热图视图,但改为提供常规图像:

dna = mahotas.imread('tools.jpg')
dna = dna.squeeze()

pylab.imshow(dna)
pylab.show()

我正在尝试使用的图像:

【问题讨论】:

    标签: python image algorithm matplotlib


    【解决方案1】:

    您输入的图像很可能是三通道 (r,g,b),示例图像是灰度/1 通道。 Matplotlib 将尝试将颜色图应用于 1 通道图像,但会按原样渲染三通道。您可以使用 scikit-image 进行下转换:

    from skimage.color import rgb2gray
    img_gray = rgb2gray(img)
    pylab.imshow(img_gray)
    

    您用于图像处理的库也可能具有这些颜色转换实用程序。

    【讨论】:

    • 这已经是很大的帮助了,pymorph可以转灰度。我仍然在苦苦挣扎,因为它仍然只检测到一个对象,将所有工具作为一个对象,我真的不明白为什么,因为并非所有对象都接触到图像。
    • 您要从后台分割工具?
    • 是的,但我想我知道出了什么问题!它将背景解释为主要对象(因为它是白色的?)所以这是一个对象,工具被视为背景。我需要以某种方式使其反转...反转图像的颜色是一个好方法吗?
    • 老实说,图像分割是一门庞大的学科,并且有很多方法可以解决。在你的情况下,你很幸运,因为你的背景是完全白色的,所以你可以只保留不是白色的像素,这应该足够了。我只在 Python 中使用 scikit-image 进行图像处理,所以我不知道你的库在做什么。如果您将此作为单独的问题发布并链接,如果您愿意,我将使用 scikit-image 解决该问题。
    • 那太好了,我会尝试制作一个单独的主题!提前致谢!
    猜你喜欢
    • 1970-01-01
    • 2023-03-11
    • 2020-01-15
    • 2012-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多