图像处理的几种方法
来源:互联网 发布:wap商城源码 编辑:程序博客网 时间:2024/05/18 04:11
图像处理的几种方法
1.使用skimage
import numpy as npimport scipyimport matplotlib.pyplot as pltfrom skimage import io,dataimg=data.chelsea()img=io.imread('d:/python/loli.jpg')#读取图片# img=io.imread('d:/python/loli.jpg',as_grey=True)#图片变换[m,n,l]=img.shapeimg1=skimage.transform.resize(img,(int(m*0.6),int(n*0.6),l),mode='reflect')#保存图片io.imsave('d:/python/loli1.jpg',img1)io.imshow(img1)plt.show()# 显示图片信息print (type(img)) #显示类型print (img.shape) #显示尺寸print (img.shape[0]) #图片宽度print (img.shape[1]) #图片高度print (img.shape[2]) #图片通道数print (img.size) #显示总像素个数print (img.max()) #最大像素值print (img.min()) #最小像素值print (img.mean()) #像素平均值
C:\ProgramData\Anaconda2\lib\site-packages\skimage\util\dtype.py:122: UserWarning: Possible precision loss when converting from float64 to uint8 .format(dtypeobj_in, dtypeobj_out))
<type 'numpy.ndarray'>(415L, 518L, 3L)41551836449102550111.793140128
2 使用scipy.misc(miscellaneous routines)不推荐,很多已经deprecated
Various utilities that don’t have another home.
Note that Pillow (https://python-pillow.org/) is not a dependency of SciPy, but the image manipulation functions indicated in the list below are not available without it.
Deprecated functions:
from scipy import miscimport matplotlib.pyplot as pltimport numpy as np# 读取图片img=misc.imread('d:/python/loli.jpg',mode='RGB')# 改变大小img1=scipy.misc.imresize(img,(111,80),interp='nearest')# 显示图片#misc.imshow(img) have been deprecatedplt.imshow(img)plt.show()misc.imsave('d:/python/loli1.jpg',img)
3 使用PIL做图像处理
3.1 Reading and Writing Images : open( infilename ) , save( outfilename )
3.2 Cutting and Pasting and Merging Images :
crop() : 从图像中提取出某个矩形大小的图像。它接收一个四元素的元组作为参数,各元素为(left, upper, right, lower),坐标系统的原点(0, 0)是左上角。
paste() :
merge()
3.3 几何变换
box = (100, 100, 200, 200) region = im.crop(box) region.show() region = region.transpose(Image.ROTATE_180) region.show() im.paste(region, box) im.show()
#旋转一幅图片def roll(image, delta): "Roll an image sideways" xsize, ysize = image.size delta = delta % xsize if delta == 0: return image part1 = image.crop((0, 0, delta, ysize)) part2 = image.crop((delta, 0, xsize, ysize)) image.paste(part2, (0, 0, xsize-delta, ysize)) image.paste(part1, (xsize-delta, 0, xsize, ysize)) return image
#简单的几何变换out = im.resize((128, 128)) #out = im.rotate(45) #逆时针旋转 45 度角。out = im.transpose(Image.FLIP_LEFT_RIGHT) #左右对换。out = im.transpose(Image.FLIP_TOP_BOTTOM) #上下对换。out = im.transpose(Image.ROTATE_90) #旋转 90 度角。out = im.transpose(Image.ROTATE_180) #旋转 180 度角。out = im.transpose(Image.ROTATE_270) #旋转 270 度角。
from PIL import Imageim=Image.open('d:/python/loli.jpg')print im.format,im.size,im.modeim.show()
JPEG (518, 415) RGB
box = (100, 100, 200, 200)region = im.crop(box)region.show()region = region.transpose(Image.ROTATE_180)region.show()im.paste(region, box)im.show()
out = im.resize((128, 128)) #out = im.rotate(45) #逆时针旋转 45 度角。out = im.transpose(Image.FLIP_LEFT_RIGHT) #左右对换。out = im.transpose(Image.FLIP_TOP_BOTTOM) #上下对换。out = im.transpose(Image.ROTATE_90) #旋转 90 度角。out = im.transpose(Image.ROTATE_180) #旋转 180 度角。out = im.transpose(Image.ROTATE_270) out.show()
阅读全文
0 0
- 图像处理的几种方法
- 几种常见的图像处理的方法
- 几种常见的图像处理的方法
- [转]使用C#进行图像处理的几种方法
- [转]使用C#进行图像处理的几种方法
- 使用C#进行图像处理的几种方法
- 使用C#进行图像处理的几种方法
- 几种图像处理库的研究
- 几种图像处理库的研究
- 几种图像处理库的研究
- 几种图像处理库的研究
- 几种图像处理库的研究
- 几种图像处理库的研究
- 几种常用的图像处理函数库
- 几种图像处理库的研究
- (转)C#进行图像处理的几种方法(bitmap,bitmapData,IntPtr)
- C#进行图像处理的几种方法(bitmap,bitmapData,IntPtr)
- 粘连图像分割的几种方法
- 欢迎使用CSDN-markdown编辑器
- 设计模式的艺术之道--模板方法模式
- HRBUST 1444 逃脱 (哈理工第七届程序设计大赛(高年级组) G 逃脱)
- ZSTUOJ 4360:科学计数法
- keepalived的配置
- 图像处理的几种方法
- (六)PyQuery库
- 随机生成10个1--20之间的随机数,要求不能重复。(for循环解题)
- [生而为人-思考] Knowledge Cooking -7th 分享会记录
- leetcode 450. Delete Node in a BST 二叉搜索树BST删除结点
- <canvas>标签
- java排序算法
- 学Python(2)—递归
- 图 插入、删除节点 插入、删除边 返回边值 广度优先遍历