对python PLT中的image和skimage处理图片方法详解

用PLT比较轻量级,用opencv是比较重量级

import numpy as np
from PIL import Image

if __name__ == '__main__':
 image_file = '/Users/mac/Documents/学习文档/机器学习/5.Package/son.png'
 height = 100 #假定写入图片的高度是100

 img = Image.open(image_file)
 img_width, img_height = img.size #获取img的尺寸
 width = 2 * height * img_width // img_height # 假定字符的高度是宽度的2倍,写入图片的高度是宽度的2倍
 img = img.resize((width, height), Image.ANTIALIAS) #改变尺寸,将新定的宽度,高度重定img的size赋给img
 pixels = np.array(img.convert('L')) #转成灰度值喂给array,pixels是个存灰度值的数组
 print(pixels.shape)
 print(pixels)
 chars = "MNHQ$OC?7>!:-;. " #256色的不同通道浓淡,M代表0-15,N代表16-31
 N = len(chars)
 step = 256 // N
 print(N)
 print step
 result = ''
 for i in range(height):
  for j in range(width):
   result += chars[pixels[i][j] // step] #像素点的值除以step是可以找到step这个像素点的位置,char做素引,是指对应的该
   #点的值填充成上面更浓的色,故就显示出来了
  result += '\n'
 with open('text.txt', mode='w') as f:
  f.write(result)

用PIT详解步骤:

img = Image.open(path)#打开图片
img.getpixel((height, width))#得到(height, width)处的像素值(可能是一个list,3通道) 
img.convert("L")#转灰度图 

size = (64, 64)
img.resize(size, Image.ANTIALIAS)#改变尺寸 

box = (10, 10, 100, 100)
img.crop(box).show#在img上的box处截图,show显示图片

#shape[0]-1梯度下降的办法取x,y值,再将img_data[x][y][0]x,y处0通道赋255色值
img_data = np.array(img)
 for i in xrange(300):
 x = random.randint(0, img_data.shape[0]-1)
 y = random.randint(0, img_data.shape[1]-1) #shape[0]是表几行,shape[1]表示几列,y在列向量上故用shape[1]
 img_data[x][y][0] = 255
 img = Image.fromarray(img_data)#加300个噪音,转来转去麻烦可以直接用skimage度图片就不用转了
img.show()
img.rotate(90)#图片旋转90 
img.transpose(Image.FLIP_LEFT_RIGHT)#图片镜像 

二、skimage打开的图片img_data:

from skimage import io,transform
img_data = io.imread(img_path)
transform.resize(img_data, (64, 64))#改变尺寸 

transform.rescale(img_data, 0.5)#缩小/放大图片

以上这篇对python PLT中的image和skimage处理图片方法详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • python使用pil进行图像处理(等比例压缩、裁剪)实例代码

    PIL中设计的几个基本概念 1.通道(bands):即使图像的波段数,RGB图像,灰度图像 以RGB图像为例: >>>from PIL import Image >>>im = Image.open('*.jpg') # 打开一张RGB图像 >>>im_bands = im.g etbands() # 获取RGB三个波段 >>>len(im_bands) >>>print im_bands[0,1,2] # 输出RG

  • Python读取视频的两种方法(imageio和cv2)

    用python读取视频有两种主要方法,大家可依据自己的需求进行使用. 方法一: 使用imageio库,没有安装的可用pip安装或自己下载,安装好后重启终端即可调用. import pylab import imageio #视频的绝对路径 filename = '/path/to/your/video.mp4' #可以选择解码工具 vid = imageio.get_reader(filename, 'ffmpeg') for im in enumerate(vid): #image的类型是ma

  • Python图像滤波处理操作示例【基于ImageFilter类】

    本文实例讲述了Python图像滤波处理操作.分享给大家供大家参考,具体如下: 在图像处理中,经常需要对图像进行平滑.锐化.边界增强等滤波处理.在使用PIL图像处理库时,我们通过Image类中的成员函数filter()来调用滤波函数对图像进行滤波,而滤波函数则通过ImageFilter类来定义的. 下面先直接看一个样例: #-*- coding: UTF-8 -*- from PIL import Image from PIL import ImageFilter def image_filter

  • python使用Image处理图片常用技巧分析

    本文实例讲述了python使用Image处理图片常用技巧.分享给大家供大家参考.具体分析如下: 使用python来处理图片是非常方便的,下面提供一小段python处理图片的代码,需要安装图像处理工具包PIL(Python Image Library). #coding=utf-8 import Image import urllib2 import StringIO import os #改变图片大小 def resize_img(img_path): try: img = Image.open

  • 详解python读取image

    python 读取image 在python中我们有两个库可以处理图像文件,scipy和matplotlib. 安装库 pip install matplotlib pillow scipy 用法 from scipy.misc import imread data = imread(image_root) #data是 ndarray对象 import matplotlib.image as mpimg data = mpimg.imread(image_root) #data是 ndarra

  • 使用ImageMagick进行图片缩放、合成与裁剪(js+python)

    最近的项目里面需要对书籍的封面进行处理,就是加一条阴影线形成书脊的凹凸感,然后将书脊切出,分成两部分,以便客户端实现打开动画.由于需要在服务器端处理,使用就研究使用imagemagick来进行.同时准备封装了一个Node.js和Python的方法,主要还是讲一下然后使用imagemagick来对图片进行缩放.合成后进行裁剪吧. 首先素材文件如下(左边未处理封面,右边为需要合成上去的阴影): 安装ImageMagick的过程就不讲了,可以参考官网的安装方法:http://www.imagemagi

  • Python3实现转换Image图片格式

    前言 首先图片格式转换的方法有很多,但是转二进制字节流的,我搜了一下午终于在 stackoverflow上搜到了 说一下为什么要在线转这个图片格式 额,一名Python3 spider, 需求要爬去文章,并且把里面的图片,上传到本公司的七牛云上面, 意思就是,图片不需要下载到本地,爬取到图片url后,读取图片二进制数据,然后上传到自己公司七牛云上面,并且替换其格式(这一点很坑) 上传图片二进制数据到七牛云上面不难, 照着七牛云API文档基本就能行,有一点很坑,七牛云官方文档Python API

  • Python Image模块基本图像处理操作小结

    本文实例讲述了Python Image模块基本图像处理操作.分享给大家供大家参考,具体如下: Python 里面最常用的图像操作库是Image library(PIL),功能上,虽然还不能跟Matlab比较,但是还是比较强大的,废话补多少,写点记录笔记. 1. 首先需要导入需要的图像库: import Image 2. 读取一张图片: im=Image.open('/home/Picture/test.jpg') 3. 显示一张图片: im.show() 4. 保存图片: im.save("sa

  • python图像处理之镜像实现方法

    本文实例讲述了python图像处理之镜像实现方法.分享给大家供大家参考.具体分析如下: 图像的镜像变化不改变图像的形状.图像的镜像变换分为三种:水平镜像.垂直镜像.对角镜像 设图像的大小为M×N,则 水平镜像可按公式 I = i J = N - j + 1 垂直镜像可按公式 I = M - i + 1 J = j 对角镜像可按公式 I = M - i + 1 J = N - j + 1 值得注意的是在OpenCV中坐标是从[0,0]开始的 所以,式中的 +1 在编程时需要改为 -1 这里运行环境

  • Python图像的增强处理操作示例【基于ImageEnhance类】

    本文实例讲述了Python图像的增强处理操作.分享给大家供大家参考,具体如下: python中PIL模块中有一个叫做ImageEnhance的类,该类专门用于图像的增强处理,不仅可以增强(或减弱)图像的亮度.对比度.色度,还可以用于增强图像的锐度. 具体见下面的例子: #-*- coding: UTF-8 -*- from PIL import Image from PIL import ImageEnhance #原始图像 image = Image.open('lena.jpg') imag

  • python图像处理之反色实现方法

    本文实例讲述了python图像处理之反色实现方法.分享给大家供大家参考.具体如下: 我们先加载一个8位灰度图像 每一个像素对应的灰度值从0-255 则只需要读取每个像素的灰度值A,再将255-A写入 这样操作一遍后,图像就会反色了 这里运行环境为: Python为:Python2.7.6 OpenCV2.4.10版(可到http://sourceforge.net/projects/opencvlibrary/files/opencv-win/下载) numpy为:numpy-1.9.1-win

  • Python图像处理之识别图像中的文字(实例讲解)

    ①安装PIL:pip install Pillow(之前的博客中有写过) ②安装pytesser3:pip install pytesser3 ③安装pytesseract:pip install pytesseract ④安装autopy3: 先安装wheel:pip install wheel 下载autopy3-0.51.1-cp36-cp36m-win_amd64.whl[点击打开链接] 执行命令:pip install E:\360安全浏览器下载\autopy3-0.51.1-cp36

随机推荐