『Python』skimage图像处理_旋转图像

一段简短的实现图像旋转的代码,使用了skimage库,据说和PIL相比,skimage对numpy等科学计算库的支持更好,这里是为了完成师兄给的帮他修改程序的任务,如果以后有需求的话可能会对python图像处理库做个梳理或者根据自己的需求做个筛选后深入了解一下。

 1 from skimage import io,transform
 2 import matplotlib.pyplot as plt
 3
 4
 5 ‘‘‘图片旋转‘‘‘
 6
 7 img2 = io.imread(‘./bg-body-3.jpg‘)
 8 img2 =transform.rotate(img2, 180)     #旋转90度,不改变大小
 9 plt.figure(‘skimage‘)
10 plt.imshow(img2)
11 plt.show()
12 print(img2.shape)
13 print(img2.dtype)

这个库会把读入的图片数据直接转化为numpy.ndarray,并将数据类型由uint8转化为float64:

输出;

(983, 1920, 3)
float64
时间: 2024-10-05 17:46:30

『Python』skimage图像处理_旋转图像的相关文章

『Python』PIL图像处理_矩阵转化

应师兄要求改图,因为使用了PIL包把图片对象转化为numpy的矩阵,截取以及处理很好玩且方便,特此记录: 1 import numpy as np 2 from PIL import Image 3 import matplotlib.pyplot as plt 4 5 img = Image.open('./7b6021ef9e6892dcf14dc5dd269afaada763fedc13b29-iHXENu_fw658.jpeg') 6 plt.imshow(img) 7 plt.show

『Python』内存分析_List对象内存占用分析

『Python』内存分析_下_list和array的内存增长模式 list声明后结构大体分为3部分,变量名称--list对象(结构性数据+指针数组)--list内容,其中id表示的是list对象的位置, v引用变量名称,v[:]引用list对象,此规则对python其他序列结构也成立,以下示范可用id佐证, a=b时,a和b指向同一个list对象 a=b[:]时,a的list对象和b的list对象指向同一个list内容 Q1:元素存储地址是否连续 首先见得的测试一下list对象存储的内容(结构3

『Python』Numpy学习指南第九章_使用Matplotlib绘图

坐标轴调节以及刻度调节参见:『Python』PIL&plt图像处理_矩阵转化&保存图清晰度调整 数据生成: 1 import numpy as np 2 import matplotlib.pyplot as plt 3 4 func = np.poly1d(np.array([1,2,3,4])) 5 func1 = func.deriv(m=1) # 求一阶导数 6 func2 = func.deriv(m=2) # 求二阶导数 7 8 x = np.linspace(-10,10,3

『Python』常用函数实践笔记

库安装: 1).pip & conda 2).在win10下手动安装python库的方法: 『python』计算机视觉_OpenCV3库安装 原生: list.append():添加元素到list末尾 list.extend():使用一个list扩展另一个list 字典列表化:字典是有顺序的,而且list字典等于list字典的key dict = {'c':1,'b':2,'a':3} list(dict) # Out[13]: # ['c', 'b', 'a'] list(dict.keys(

『Re』正则表达式模块_常用方法记录

『Re』知识工程作业_主体识别 一个比较完备的正则表达式介绍 几个基础函数 re.compile(pattern, flags=0) 将正则表达式模式编译成一个正则表达式对象,它可以用于匹配使用它的match ()和search ()等方法. 实际有两种使用方式: pattern.匹配方法(string) 或者 re.匹配方法(pattern,string) 使用或|来强化匹配规则: pattern_t = re.compile( '[0-9〇一二三四五六七八九]{4}年.{1,2}月.{1,3

『Python』内存分析_list和array的内存增长模式

『Python』内存分析_List对象内存占用分析 在Python中,列表是一个动态的指针数组,而array模块所提供的array对象则是保存相同类型的数值的动态数组.由于array直接保存值,因此它所使用的内存比列表少.列表和array都是动态数组,因此往其中添加新元素,而没有空间保存新的元素时,它们会自动重新分配内存块,并将原来的内存中的值复制到新的内存块中.为了减少重新分配内存的次数,通常每次重新分配时,大小都为原来的k倍.k值越大,则重新分配内存的次数越少,但浪费的空间越多.本节通过一系

『TensorFlow』迁移学习_他山之石,可以攻玉

目的: 使用google已经训练好的模型,将最后的全连接层修改为我们自己的全连接层,将原有的1000分类分类器修改为我们自己的5分类分类器,利用原有模型的特征提取能力实现我们自己数据对应模型的快速训练.实际中对于一个陌生的数据集,原有模型经过不高的迭代次数即可获得很好的准确率. 实战: 实机文件夹如下,两个压缩文件可以忽略: 花朵图片数据下载: 1 curl -O http://download.tensorflow.org/example_images/flower_photos.tgz 已经

『TensorFlow』分布式训练_其二_多GPU并行demo分析(待续)

建议比对『MXNet』第七弹_多GPU并行程序设计 models/tutorials/image/cifar10/cifer10_multi_gpu-train.py # Copyright 2015 The TensorFlow Authors. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file exc

『TensorFlow』读书笔记_降噪自编码器

『TensorFlow』降噪自编码器设计 之前学习过的代码,又敲了一遍,新的收获也还是有的,因为这次注释写的比较详尽,所以再次记录一下,具体的相关知识查阅之前写的文章即可(见上面链接). # Author : Hellcat # Time : 2017/12/6 import numpy as np import sklearn.preprocessing as prep import tensorflow as tf from tensorflow.examples.tutorials.mni