在前面的python数字图像处理(10):图像简单滤波 中,我们已经讲解了很多算子用来检测边缘,其中用得最多的canny算子边缘检测. 本篇我们讲解一些其它方法来检测轮廓. 1.查找轮廓(find_contours) measure模块中的find_contours()函数,可用来检测二值图像的边缘轮廓. 函数原型为: skimage.measure.find_contours(array, level) array: 一个二值数组图像 level: 在图像中查找轮廓的级别值 返回轮廓列表集合,…
python数字图像处理(18):高级形态学处理   形态学处理,除了最基本的膨胀.腐蚀.开/闭运算.黑/白帽处理外,还有一些更高级的运用,如凸包,连通区域标记,删除小块区域等. 1.凸包 凸包是指一个凸多边形,这个凸多边形将图片中所有的白色像素点都包含在内. 函数为: skimage.morphology.convex_hull_image(image) 输入为二值图像,输出一个逻辑二值图像.在凸包内的点为True, 否则为False 例: import matplotlib.pyplot a…
原文:Win8 Metro(C#) 数字图像处理--1 图像打开,保存 作为本专栏的第一篇,必不可少的需要介绍一下图像的打开与保存,一便大家后面DEMO的制作.   Win8Metro编程中,图像相关的操作基本都是以流的形式进行的,图像对象类型在Metro主要表现为两种形式:BitmapImage和WriteableBitmap,图像的显示控件为Image.   我们可以用如下方式打开和显示一幅图像对象. BitmapImage srcImage=newBitmapImage (new Uri(…
一提到数字图像处理编程,可能大多数人就会想到matlab,但matlab也有自身的缺点: 1.不开源,价格贵 2.软件容量大.一般3G以上,高版本甚至达5G以上. 3.只能做研究,不易转化成软件. 因此,我们这里使用python这个脚本语言来进行数字图像处理. 要使用python,必须先安装python,一般是2.7版本以上,不管是在windows系统,还是linux系统,安装都是非常简单的. 要使用python进行各种开发和科学计算,还需要安装对应的包.这和matlab非常相似,只是matla…
一提到数字图像处理编程,可能大多数人就会想到matlab,但matlab也有自身的缺点: 1.不开源,价格贵 2.软件容量大.一般3G以上,高版本甚至达5G以上. 3.只能做研究,不易转化成软件. 因此,我们这里使用python这个脚本语言来进行数字图像处理. 要使用python,必须先安装python,一般是2.7版本以上,不管是在windows系统,还是linux系统,安装都是非常简单的. 要使用python进行各种开发和科学计算,还需要安装对应的包.这和matlab非常相似,只是matla…
原文:Win8 Metro(C#)数字图像处理--4图像颜色空间描述  图像颜色空间是图像颜色集合的数学表示,本小节将针对几种常见颜色空间做个简单介绍. /// <summary> /// Get rgba value from source image. /// </summary> /// <param name="src">The source image.</param> /// <returns></ret…
有些时候,我们不仅要对一张图片进行处理,可能还会对一批图片处理.这时候,我们可以通过循环来执行处理,也可以调用程序自带的图片集合来处理. 图片集合函数为: skimage.io.ImageCollection(load_pattern,load_func=None) 这个函数是放在io模块内的,带两个参数,第一个参数load_pattern, 表示图片组的路径,可以是一个str字符串.第二个参数load_func是一个回调函数,我们对图片进行批量处理就可以通过这个回调函数实现.回调函数默认为im…
实际上前面我们就已经用到了图像的绘制,如: io.imshow(img) 这一行代码的实质是利用matplotlib包对图片进行绘制,绘制成功后,返回一个matplotlib类型的数据.因此,我们也可以这样写: import matplotlib.pyplot as plt plt.imshow(img) imshow()函数格式为: matplotlib.pyplot.imshow(X, cmap=None) X: 要绘制的图像或数组. cmap: 颜色图谱(colormap), 默认绘制为R…
import cv2 import numpy as np import matplotlib.pyplot as plt import scipy import scipy.stats %matplotlib inline 读入我们需要的图像 apple = cv2.imread("apple.jpg") apple = cv2.resize(cv2.cvtColor(apple,cv2.COLOR_BGR2RGB),(200,200)) plt.imshow(apple) plt.…
图像阈值分割是一种广泛应用的分割技术,利用图像中要提取的目标区域与其背景在灰度特性上的差异,把图像看作具有不同灰度级的两类区域(目标区域和背景区域)的组合,选取一个比较合理的阈值,以确定图像中每个像素点应该属于目标区域还是背景区域,从而产生相应的二值图像. 在skimage库中,阈值分割的功能是放在filters模块中. 我们可以手动指定一个阈值,从而来实现分割.也可以让系统自动生成一个阈值,下面几种方法就是用来自动生成阈值. 1.threshold_otsu 基于Otsu的阈值分割方法,函数调…