【问题标题】:Image Conversion between cv2, cv, mahotas, and SimpleCVcv2、cv、mahotas 和 SimpleCV 之间的图像转换
【发布时间】:2012-03-02 12:08:00
【问题描述】:

我最近不得不在 Python 中做很多与视觉相关的工作,并且在格式之间切换时遇到了很多困难。当我使用 Mahotas 读取图像时,我似乎无法将其传输到 cv2,尽管它们都使用 numpy.ndarray。 SimpleCV 可以轻松获取 OpenCV 图像,但为旧版 cv 或 mahotas 获取 SimpleCV 图像似乎是一项艰巨的任务。

非常感谢一些格式转换语法。例如,如果我使用 mahotas 打开灰度图像,默认情况下它被视为浮点颜色空间,正如我所收集的那样。即使我将类型指定为 numpy.uint8,cv2 似乎也无法将其识别为数组。我不知道如何解决这个问题。我对彩色图像也没有太多运气。我在 Ubuntu Oneiric Ocelot 上使用 Python 2.7 32 位。

提前致谢!

【问题讨论】:

  • 现在,我从未使用过 Mahotas 或 SimpleCV,但您是否尝试过通过 cv.fromarray() 将 NumPy 数组转换为 cv 图像?此外,您可以通过 IplImage 的 .tostring() 方法将 cv 图像转换为 NumPy。 (IE array = numpy.fromstring(image.tostring(),dtype=numpy.float32) 另外,一定要查看OpenCV's Cookbook。最后,出于好奇,真的有必要使用所有不同的库吗?我想,至少 SimpleCV 和 OpenCV 一起会有很多重叠。
  • 我不是专家,所以说它的必要性对我来说是不明智的,但通常我会尝试找到所有运行最快的方法并尝试将它们组合起来,因为低系统下的速度资源对于我正在尝试的东西至关重要。我一直在使用您提到的方法,这很容易。 Mahotas 有一些超快的实现,我很想尝试一下,但我不能,因为我似乎无法将 numpy 拿出来!程序员不断指出 cv2 使用 numpy 更灵活但速度慢得多,所以我认为值得一试!
  • 我不经常遇到特别慢的 OpenCV 实现。我使用它们的大部分内容都能够实时运行。我的建议是选择一个并在大多数事情上坚持下去。如果您最终遇到资源问题,请从那里获取!如果我没记错的话,SimpleCV 在很大程度上是一个 OpenCV 包装器——这可能是一个很好的尝试。我本人偏向于 OpenCV,但后来我在 C# 中做了很多工作。
  • 我尝试在我的英特尔 i3 笔记本电脑上使用 SimpleCV 运行斑点检测,它有 4 GB 的 RAM,而且速度很慢,即使在运行斑点检测之前我对图像的大部分颜色信息进行了阈值处理之后在上面。我最终必须在一个处理器比这差得多且 RAM 更有限的机器人上运行代码,而且我没有看到 SimpleCV 提供任何可用的东西。
  • 啊,是的,我似乎记得当你第一次提到它时,当我环顾四周时,他们做了自己的斑点检测。如果我今天有机会,我会同时抓住 Mahotas 和 SimpleCV,看看我是否无法为您提供正确的答案。如果您还没有,它也可能有助于看一下这个! PerformancePython

标签: python opencv python-2.7 simplecv mahotas


【解决方案1】:

只有 cv2 和 SimpleCV 的经验,从 SimpleCV 转换为 cv2:

cv2_image = simplecv_image.getNumpyCv2()

从 cv2 转换为 SimpleCV:

simplecv_image = Image(cv2_image.transpose(1, 0, 2)[:, :, ::-1])

【讨论】:

    【解决方案2】:

    我从未使用过mahotas。但我目前正在研究 SimpleCV。我刚刚发送了一个拉取请求,要求使 SimpleCV numpy 数组与 cv2 兼容。

    所以,基本上,

    Image.getNumpy() -> 用于 cv2 的 numpy.ndarray

    Image.getBitmap() -> cv2.cv.iplimage

    Image.getMatrix() -> cv2.cv.cvmat

    要将 cv2 numpy 数组转换为 SimpleCV Image 对象,

    Image(cv2_image) -> SimpleCV.ImageClass.Image

    【讨论】:

      猜你喜欢
      • 2013-05-04
      • 1970-01-01
      • 2014-01-30
      • 2015-01-14
      • 2014-04-22
      • 1970-01-01
      • 2021-08-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多