如何从Python cv2中的Internet URL读取图像?
import cv2.cv as cv
import urllib2
from cStringIO import StringIO
import PIL.Image as pil
url="some_url"
img_file = urllib2.urlopen(url)
im = StringIO(img_file.read())
Run Code Online (Sandbox Code Playgroud)
不好,因为Python向我报告:
TypeError: object.__new__(cStringIO.StringI) is not safe, use cStringIO.StringI.__new__
Run Code Online (Sandbox Code Playgroud) 嗨,我是Python的新手,并且遵循Python Image Tutorial.
安装本教程中描述的软件包后,执行以下操作时没有错误
import numpy
import scipy
import pylab
import pymorph
import mahotas
from scipy import ndimage
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试阅读图像时
image = mahotas.imread('picture_file.jpg')
Run Code Online (Sandbox Code Playgroud)
我明白了
image = mahotas.imread('image_file.jpg')Traceback(最近一次调用最后一次):文件"",第1行,在文件"/usr/local/lib/python2.6/dist-packages/mahotas-0.6.4 -py2.6-linux-i686.egg/mahotas/init .py",第68行,在imread引发ImportError('mahotas.imread依赖于freeimage.找不到它.错误是:%s'%e)ImportError: mahotas.imread依赖于freeimage.找不到它.错误是:mahotas.freeimage:在以下任何目录中找不到libFreeImage:'/ usr/local/lib/python2.6/dad-package/mahotas-0.6.4-py2.6-linux-i686.egg/mahotas','/ lib','/ usr/lib','/ usr/local/lib','/ opt/local/lib'
我尝试安装FreeImagePy并可以导入它没有任何问题,但它没有帮助.我已经尝试使用package sys添加到Python路径,但也没有帮助.
编辑:我应该已经提到除了pymorph和mahotas之外的所有软件包都安装在我的linux盒子里做'*sudo apt-get install package_name*',而pymorph和mahotas是通过下载并执行' sudo python setup.py install '来安装的.
我最近不得不在Python中做很多与视觉相关的工作,而且我在格式之间切换时遇到很多困难.当我使用Mahotas读取图像时,我似乎无法将其转换为cv2,尽管它们都使用numpy.ndarray.SimpleCV可以轻松获取OpenCV图像,但是为简单的cv或mahotas获取SimpleCV图像似乎是一项非常重要的任务.
一些格式转换语法将非常受欢迎.例如,如果我使用mahotas打开灰度图像,默认情况下会将其视为浮点颜色空间.即使我将类型指定为numpy.uint8,cv2似乎也无法将其识别为数组.我不知道如何解决这个问题.我对彩色图像也没有多少运气.我在Ubuntu Oneiric Ocelot上使用Python 2.7 32bit.
提前致谢!
我正在使用本教程 http://pythonvision.org/basic-tutorial
但是当我传递一个png图像时:
T = mahotas.thresholding.otsu(dna)
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:
TypeError:mahotas.otsu:此函数只接受整数类型(传递float32类型的数组)
有没有人有exp.这个问题?谢谢!
我正在尝试使用 Python 来检测白色表面上有多少个物体。示例图像位于本文末尾。
我想知道应该如何做到这一点,主要是因为背景是白色的,并且大多数时候它被检测为前景。
我现在在Python中基于本教程(http://pythonvision.org/basic-tutorial)使用了多个库并检测白色作为对象,因此计数为1,工具被检测为背景,因此被忽略:
dna = mahotas.imread('dna.jpeg')
dna = dna.squeeze()
dna = pymorph.to_gray(dna)
print dna.shape
print dna.dtype
print dna.max()
print dna.min()
dnaf = ndimage.gaussian_filter(dna, 8)
T = mahotas.thresholding.otsu(dnaf)
labeled, nr_objects = ndimage.label(dnaf > T)
print nr_objects
pylab.imshow(labeled)
pylab.jet()
pylab.show()
Run Code Online (Sandbox Code Playgroud)
是否有任何选项可以将白色部分作为背景并将工具作为前景?
提前致谢!
示例图片:

分割后的图像,其中红色为前景,蓝色为背景(少数工具合并不是问题):

我正在尝试用Mahotas写一个图像,发现它很奇怪.
img = mahotas.imread('foo.png', True)
mahotas.imsave('bar.png', img)
Run Code Online (Sandbox Code Playgroud)
我得到的错误是:
ValueError: mahotas.freeimage: cannot write arrays of given type and shape.
Run Code Online (Sandbox Code Playgroud)
我在OS X上使用brew来安装freeimage.
我有这样的图像:

在我通过scikit图像的骨架化功能对其进行骨架化之后
from skimage import morphology
out = morphology.skeletonize(gray>0)
Run Code Online (Sandbox Code Playgroud)

有一种计算黑色空间数量的方法吗?(在这张图片中为六)除了scikit-image或mahotas的背景?
mahotas ×9
python ×8
opencv ×3
scikit-image ×3
algorithm ×1
glcm ×1
image ×1
installation ×1
numpy ×1
package ×1
python-2.7 ×1
simplecv ×1
threshold ×1