推荐使用scikits.image 进行图像处理, 比较好用.

【Scikit-learn】【入门】简介 + Scikit-learn六大功能 1.简介(1)SciPy,SciPy是一个开源的基于Python的科学计算工具包。(2)Scikits,基于SciPy针对不同的应用领域发展出众多的分支版本,他们统一称为Scikits,即SciPy工具包的意思(3)Scikit-learn,是针对机器学习出的一个分支版本(开源框架),就是Scikit-learn,这就是Scikit-learn和SciPy的关系。Scikit-learn需要Num... 阅读详情

看了<<用python做科学计算>>后, 研究了一下图像处理, opencv很好, 但很不pythonic , PIL有点弱, 后来发现了这个 scikits.image , pypi上得10分的图像处理库, 但安装过程很坎坷, 最后总算搞定, 想和大家分享.

scikits 是针对scipy写的一些toolkits, 相当于matlab里的工具箱了, 开源社区真是强大啊! 
scikits.image 是其中的图像处理工具箱, 具有以下优势:

1.对OpenCV进行了封装, 使得cvMat类型在其内部隐藏, 包括图像处理函数的输入和输出, 其外部接口全部用numpy的ndarray表示, 这样就可以方便使用numpy和scipy的强大功能, 包括scipy的ndimage Processing库, 自己写个算法也方便多了. 这个很强大!

>> import scikits.image.io as io 
>> lena=io.imread("d:/lena.jpg") 
>> type(lena) 
<type 'numpy.ndarray'> 
>> lena.shape,lena.dtype 
((512, 512, 3), dtype('uint8'))

2.使用opencv函数时, 自动产生目标图像, 方便而且内部实现高效 
使用pyopencv将lena.jpg转换为灰度图像, 需要手工创建目标图像, 麻烦且易出错: 
>> import pyopencv as cv 
>> lena=cv.imread("d:/lena.jpg") 
>> grayLena=cv.Mat(lena.size(),cv.CV_8UC3) 
>> cv.cvtColor(lena,grayLena,cv.CV_RGB2GRAY) 
>> grayLena.ndarray.dtype 
dtype('uint8') 

而使用scikits.image将lena.jpg转换为灰度图像, 就方便不少: 
>> import scikits.image.opencv as cv 
>> import scikits.image.io as io 
>> lena=io.imread("d:/lena.jpg") 
>> grayLena=cv.cvCvtColor(lena,cv.CV_RGB2GRAY) 
>> grayLena.dtype 
dtype('uint8')

 3.image包括其它的一些opencv中没有的算法, 包括trasform, gragh, morphology, filter, OpenCV只是其中的一个模块, 不是全部.

安装注意事项:

安装很麻烦, 但解决麻烦的过程是一种乐趣, 与大家分享


1.官方和pypi的0.22版本在XP下安装失败, 库也不全, 应该使用0.3版本, 下载地址:https://github.com/stefanv/scikits.image , 点download, 选择0.2.1( 就是0.3版本, 不知道它怎么弄的)下载


2. 自带的_libimport文件有问题, 需要更改, 安装(需要numpy,scipy,cython,  pyqt  , pil , matplot , 装了pythonxy就都有了)完成后, 找到opencv模块的_libimport.py文件(我的是D:\Python26\Lib\site-packages\scikits.image-0.3dev-py2.6-win32.egg\scikits\image\opencv\_libimport) , 该文件主要是找到opencv的cv.dll和cxcore.dll文件, 但照源文件的方法一般都找不到, 更改为如下(请参照自己的opencv路径和版本, 最新的opencv2.2 不支持):

__all__ = ["cv", "cxcore"] 
import ctypes 
cv = ctypes.CDLL("d:/OpenCV/Opencv2.1/bin/cv210.dll") 
cxcore = ctypes.CDLL('d:/OpenCV/Opencv2.1/bin/cxcore210.dll')

3.自带的io的plugin机制有点麻烦, 默认情况下使用PIL的imread, imsave和imshow, PIL的imshow有点难看(不贴图了,自己试试), 要想使用opencv风格的imshow则需要这样: 
>> io.imshow(lena,plugin='qt') 
#通过指定plugin为qt, 弹出一个qt窗口,显示图像,窗口标题还不能设定 

解决方案如下:

方法一: 
a. 将io模块的__init__.py文件的13行更改为如下: 
use_plugin('pil')  →   use_plugin('pil','imread'); use_plugin('qt', 'imshow'); 
理论上改成这样就可以了, 但我试了后还是不行,就需要继续b和c的步骤了, 希望大家也试试. 
b.将io模块的io.py文件的第132行做如下更改: 
def imshow(arr, plugin=None, **plugin_args): → def imshow(arr, plugin='qt', **plugin_args):

c.更改完后io的imshow不能显示窗口标题, 也就是说,每回显示的imshow窗口,标题都是一样的, 是"scikits.imge", 有时候希望可以为窗口指定标题, 我用这个方法: 
将io模块的io.py文件的第132行(上面说的那个)做如下更改: 
def imshow(arr, plugin='qt', **plugin_args): → def imshow(arr, title="Image", plugin='qt', **plugin_args): 
将io.py第150行更改如下: 
return call_plugin('imshow', arr ,plugin=plugin, **plugin_args) → return call_plugin('imshow', arr, title=title,plugin=plugin, **plugin_args) 
将io模块下的_plugin模块中的qt_plugin.py第80行更改如下:def imshow(arr, fancy=False):→def imshow(arr, title="Image", fancy=False): 
将qt_plugin.py第88行更改如下: 
iw = ImageWindow(arr, window_manager) → iw = ImageWindow(arr, window_manager); iw.setWindowTitle(title);

方法二:

因为默认使用PIL的imread, imshow 和imsave方法, 因此可以直接更改 pil的 imshow 方法(这样还省去了对qt的依赖)


a.将io模块的io.py文件的第1行加上#coding=utf-8

将io模块的io.py文件的第132行做如下更改: 
def imshow(arr, plugin=None, **plugin_args): → 
def imshow(arr,  title=u"图像" , plugin=None, **plugin_args): 
#方法一中title似乎不能使用中文, 但方法二可以

将io.py第150行更改如下: 
return call_plugin('imshow', arr ,plugin=plugin, **plugin_args) → return call_plugin('imshow', arr, title=title,plugin=plugin, **plugin_args)

b.将io模块下的_plugin模块中的pil_plugin.py第后行(imshow的方法体)更改如下:

def imshow(arr,title=u"图像"):  
    """Display an image, using PIL's ImageTk function.

    Parameters 
    ---------- 
    arr : ndarray 
       Image to display.  Images of dtype float are assumed to be in 
       [0, 1].  Images of dtype uint8 are in [0, 255].

   title : Caption of the display window. Default is u"图像".

    """ 
    if np.issubdtype(arr.dtype, float): 
        arr = (arr * 255).astype(np.uint8) 
    try: 
        
        image=Image.fromarray(arr) 
        root=tk.Tk() 
        root.title(title) 
        root.geometry('%dx%d' % (image.size[0],image.size[1])) 
        tkpi = ImageTk.PhotoImage(image) 
        label_image = tk.Label(root, image=tkpi).pack() 
        root.mainloop() 
    except Exception,e: 
        print e

使用注意事项:

1.与pyopencv不同, 所有的opencv方法都有一个cv前缀, 就用cv.cvCanny之类的了, 改变一下习惯也无所谓

2.scikits.image的opencv模块中只有opencv的图像处理函数导入了,其它的如机器学习,摄像机等内容没有包含

3.pyopencv中的waitkey()函数变成了,io.show()函数, 大概作用就是在非交互模式时,停止运行程序,等待imshow窗口被关闭, 否则, imshow窗口会一闪而过

4.opencv中的函数调用都是function( sourceImage, dstImage, ...) → None的形式, scikits.image.opencv 中都变成了function(sourceImage,...) → dstImage ,这样显然方便不少, 也显得自然, 但是需要改变习惯.

还有其它的问题, 大家在安装或使用的过程中遇到的, 希望回帖一起交流.

转载自:http://www.zeuux.com/group/scipython/bbs/content/5373/

安装scikits.audiolab 在Ubuntu上安装scikits.audiolab,用于一些音频文件的处理。参见官方文档的安装:http://cournape.github.io/audiolab/installing.html。 碰到问题,找不到sndfile相关的库:Directories to search for the libraries can be specified in the site.cfg file, 阅读详情

相关推荐

Python图像处理库之Scikit-Image(skimage)的介绍、安装和使用攻略

Scikit-image是一个Python图像处理库, 包含了一些基本的图像处理功能, 比如图像缩放、旋转、图像变换、阈值化处理等等。在这篇文章中,我们将介绍scikit-image的安装过程以及如何使用它对图像进行处理。以上就是关于Scikit-Image(skimage)的介绍、安装和使用攻略,通过这些技术,我们可以轻松地进行图像处理。在scikit-image库中,我们可以使用sobel函数来进行边缘检测。在scikit-image库中,我们可以使用canny函数来进行边缘检测。

qq_37934722的博客 1万+

python skikit-learn库总结

1、简介 scikit-learn是一个建立在Scipy基础上的用于机器学习的python模块,而在不同的领域中已经发展出为数众多的基于Scipy的工具包,它们被统一称为Scikits,而在所有的分支版本中,scikit-learn是最有名的。它是开源的,任何人都可以免费地使用它或者进行二次发行。 scikit-learn包含众多定级机器学习算法,它主要有6大类的基本功能,分别是分类,回归,聚...

小鲸鱼的天空 2551

从智能手机到汽车电子:聊聊IPC-9702/9704A标准如何帮我们搞定不同场景下的PCB可靠性设计

本文探讨了IPC-9702/9704A标准在智能手机和汽车电子等不同场景下的PCB可靠性设计应用。通过分析消费电子、汽车电子和工业设备中的应力特征,详细解读了IPC标准在应变识别和测试方法论中的核心价值,并提供了具体的轻量化设计策略和全生命周期验证方案,帮助工程师提升PCB的长期可靠性。

weixin_30693683的博客 280

【脚本语言系列】关于Python图像处理scikits-image, 需要知道的事

如何使用scikits-image检测边缘

Allen-Moore的博客 692

【UE5.3 Cesium for Unreal】GlobePawn编译实战:从源码修改到功能实现

本文详细介绍了在UE5.3中为Cesium for Unreal插件编译和集成非官方增强组件GlobePawn的完整实战流程。从获取源码、准备资产文件、部署项目结构,到逐行修改代码适配工程并解决典型编译错误,最终实现在三维地球上实现类似Google Earth的丝滑鼠标交互体验。

weixin_29011667的博客 307

电商数据分析18——电商广告投放的数据分析与优化

在当今的电商行业中,广告投放是提高品牌知名度、吸引潜在客户和增加销售额的关键策略之一。随着市场竞争的加剧,仅仅依靠直观判断和传统方法已经无法满足广告投放的需求。数据分析在这里扮演了至关重要的角色,它可以帮助企业更准确地定位目标受众,评估广告效果,优化广告内容,从而提高广告效率和投资回报率(ROI)。

theskylife的博客 5703

三、Scikit-learn机器学习框架

三、Scikit-learn机器学习框架 3.1 Scikit-learn介绍 Scikit-learn介绍 对Python语言有所了解的科研人员可能都知道SciPy——一个开源的基于Python的科学计算工具包。 基于SciPy,目前开发者们针对不同的应用领域已经发展出了为数众多的分支版本,它们被统一称为Scikits,即SciPy工具包的意思。 而在这些分支版本中,最有名,也是专门面向机器学习的一个就是Scikit-learn。 Scikit-learn项目最早由数据科学家 David Cournape

小石小石摩西摩西 3万+

在Cursor中集成Ollama与Qwen2.5‑Coder:零成本本地AI开发环境搭建

本文详细介绍了如何零成本搭建本地AI开发环境,通过将Cursor IDE与本地运行的Ollama及Qwen2.5-Coder模型集成,实现数据不出本地的智能编程辅助。教程涵盖Ollama安装、模型拉取、ngrok内网穿透配置及Cursor设置等核心步骤,并提供了实战测试与常见问题排错指南,为注重隐私与成本的开发者提供安全高效的解决方案。

weixin_29296241的博客 1072

【Python】使用scikit-learn做数据挖掘和分析

Scikit-learn,也被称为sklearn,是一个针对Python编程语言的免费软件机器学习库,是一个功能强大、易用且广泛应用的Python机器学习库,为数据科学家和开发者提供了丰富的工具和资源来进行机器学习任务的开发与实践。 Scikit-learn起源于David Cournapeau的Google Summer of Code项目,名为scikits.learn。 Scikit-learn提供了各种分类、回归和聚类算法,包括支持向量机(SVM)、随机森林、梯度提升、k-均值和DBSCAN等。

不积跬步无以至千里,不积小流无以成江海。一个喜欢学习分享的程序员 2729

1.30 Cubemx_STM32H743 SD_Card纳入文件管理系统

Cubemx_STM32H743 SD_Card纳入文件管理系统1、简介2、CubeMX配置 1、简介 和前面文章原理其实一样的。 1.29 Cubemx_STM32F429\H743 nandflash、spifalsh纳入文件管理系统 现在一并将SD卡、NandFlash、SPIFlash一并作为文件管理。 下面直接介绍SDcard,其他参考前面文章。 2、CubeMX配置 ...

oDuanYanGuHong的博客 1080

【原创,解决CLodop安装后无法调用的问题】已经安装过CLodop,但是网页上仍然提示“clodop云打印服务(localhost本地)未安装启动,点击这里执行安装....”

在某些国内web网站中,需要安装一个名为“CLodop”的插件;但在实际使用过程中,即使安装了CLodop插件,网页试图调用它时还是会提示“clodop云打印服务(localhost本地)未安装启动,点击这里执行安装...”,且无法完成相关打印任务 本文属原创博客,分析了解决CLodop无法被调用的问题,并附上了原理和解决方法,本质上是和跨域请求以及CORS类安全组策略相关

link_in_csdn的博客 2万+

python填充中数_Python / Numpy中的扫描线填充算法

Numpy也有类似的功能吗?我仍然没有得到这个算法如何详细工作,因此,如果你能给我一些关于如何有效地在Python / Numpy中实现它的提示,我将非常感激.或者为了速度原因,在CPython(我也不熟悉)中对它进行编码会更好吗?解决方法:在scipy生态系统中有一些不同的功能(无序):1)最广泛使用的选项是使用matplotlib的points_inside_poly.但是,填充常规网格非常不...

weixin_39876592的博客 482

相机SDK开发C++篇-常用开发函数封装讲解(迈德威视相机)

/ 软触发失败,返回false } return true;= (nRet = CameraSetSysOption("NumBuffers", QString("%1").arg(getImageBufferNodeNum()).toLocal8Bit().data()))) { setLastErrorMsg("相机#%1设置缓存区数量错误,错误码:%2").arg(getCameraIndex()).arg(nRet);

GodJhin的博客 1542

Python 机器学习 Scikit-learn 完全入门指南

本文来自作者 刘明 在 GitChat 上分享 「Python 机器学习 Scikit-learn 完全入门指南」编辑 | 哈比使用 Python 的科研人员,几乎都用过 SciPy。SciPy 是一...

技术杂谈 1万+

ABAP Bits and Bytes 完全参考,理解内存、字节、位运算与类型解释

ABAP开发中业务代码与底层字节处理的差异:业务层关注采购订单、会计凭证等语义信息,而接口开发需处理十六进制、位运算等底层操作。文章通过整数变量示例说明同一段字节在不同类型解释下会呈现不同值,并介绍x类型、位运算及类型转换的实际应用。这些知识在文件接口、加密传输等场景中尤为重要,开发者需注意字节序、编码等问题。建议将底层协议处理与业务逻辑分离,以保持代码清晰和可维护性。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 142

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

图像处理 scikit-image、opencv、dlib简易整理

1、简介 scikit-image:skimage包的全称是scikit-image SciKit (toolkit for SciPy) ,它对scipy.ndimage进行了扩展,提供了更多的图片处理功能。它是由python语言编写的,由scipy 社区开发和维护;skimage包由许多的子模块组成,各个子模块提供不同的功能;特点:轻量,易安装,易使用,轻量级 opencv:OpenCV用...

小鲸鱼的天空 3019

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Py之scikit-learn:机器学习sklearn库的简介、六大基本功能介绍(数据预处理/数据降维/模型选择/分类/回归/聚类)、安装、使用方法(实际问题中如何选择最合适的机器学习算法)之详细攻略

​ Py之scikit-learn:机器学习sklearn库的简介(组件/版本迭代)、六大基本功能介绍(数据预处理/数据降维/模型选择/分类/回归/聚类)、安装、使用方法(实际问题中如何选择最合适的机器学习算法)之详细攻略 目录 scikit-learn的简介 scikit-learn的基本功能—六大部分 scikit-learn的安装 scikit-learn的使用方法 scikit-learn的简介 scikit-learn,scikits.learn,也称为

头部AI社区如有邀博主AI主题演讲请私信—心比天高,仗剑走天涯,保持热爱,奔赴向梦想!低调,专注,谦虚,自律,反思,成长,还算比较正能量的博主,公益免费传播…内心特别想在AI界做出一些可以推进历史进程影响力的技术(兴趣使然,有点小情怀,也有点使命感呀 1万+

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

win10安装scikit-image错误: geometry.obj" failed with exit status 127

问题:win10安装scikit-image错误pip install scikit-image error: Command "cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -Ig:\virtualenv_workspace\py36\tensorflow\lib\site-packages\numpy\core\include -ID:\Python36-

xyh421的专栏 2043

[机器学习与scikit-learn-1]:Python科学计算库三剑客之一scikit-learn概述与机器学习

作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_优快云博客 本文网址: 目录 第1章 Python科学计算三剑客 1.1 NumPy、SciPy、scikit-learn共称为Python科学计算库三剑客。 1.2 NumPy、SciPy、scikit-learn的区别 第2章Scikit-learn与机器学习 2.1 机器学习与人工智能、深度学习的关系 2.2机器学习与Scikit-learn 第3 如何学习Scikit-learn 3.1Scik...

文火冰糖(王文兵)的博客 2027

scikit-image图像处理入门

点击上方“小白学视觉”,选择加"星标"或“置顶”重磅干货,第一时间送达scikit-image概述与安装skimage是纯python语言实现的BSD许可开源图像处理算法库,主要的优势在于...

小白学视觉 3432

【Python三方库】图像处理库之Scikit-Image(skimage)库的简介、安装、使用方法、示例代码、注意事项等详细攻略

Scikit-Image(skimage)是一个功能强大的Python库,用于图像处理和计算机视觉任务。通过本文的介绍,我们了解了Scikit-Image的简介、安装方法和基本使用方法,并且展示了一些常见图像处理任务的代码示例。无论你是初学者还是经验丰富的开发者,希望这篇指南能够帮助你更好地利用Scikit-Image进行图像处理,提升工作效率。

科技改变人类,技术成就未来 7752

from scipy import special, optimize, from ._nnls import nnls ImportError: DLL load failed: 找不到指定的模块。

Python调用skimage库时报以下错,检查发现skicit-image库是安装的。通过以下两步快速解决!

振华OPPO的博客世界 1257

【Tensorflow】辅助工具篇——scikit-image介绍

很多时候我们跑deep learning算法的难点不在于搭建网络,而是数据获取与处理,当你看到大量的数据却无从下手时该是怎样的心情! 这几篇我将为大家介绍目前很多paper代码复现中比较流行的辅助工具 首先我们简要介绍一下scikit-image这个扩展包: scikit-image (a.k.a. skimage) 是一个图像处理和计算机视觉的算法集合。当然提到图像不得不提opencv

xf__mao的博客 1万+

scikit-image图像操作示例

多个例子  scikit-image的通用和介绍性示例。地址:http://scikit-image.org/docs/dev/auto_examples/ 在叙述文档介绍了基本的图像操作。 腾讯云上面的scikit-image开发文档:https://cloud.tencent.com/developer/section/1414780#stage-100056610 scikit-im...

图特摩斯科技-博客 3785

关于scikits.talkbox不能安装的解决办法

最近在做语音识别时,遇到了这样一个包: 用pip安装时总是找不到,好像是被移除了。 但是一时又找不到替代的包,尝试了各种方法后终于搞出一种算是靠谱的解决方法。 首先找到包的源代码:http://pydoc.net/scikits.talkbox/0.2.5/scikits.talkbox.features.mfcc/(这个网站有scikits的所有包...

McGregorWwww的博客 2853

安装scikits.audiolab ,语音识别

pip install  scikits.audiolab   会报错,缺少sndfile的包,先安装一下 sndfile sudo  apt-get  install  libsndfile-dev pip  install  scikits.audiolab 安装成功! Ubuntu,Python 3.6和Python 2.7都行; 我在windows7,Python3.6...

独钓寒江雪 3348
上一篇: python 图像处理库模块(python Image Library)
下一篇: 21世纪初最有影响力的20篇计算机视觉期刊论文
Jackie_Zhu
博客等级 码龄18年 343粉丝 32原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值