脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - Python - 对python PLT中的image和skimage处理图片方法详解

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

2021-05-13 01:16jolingcome Python

今天小编就为大家分享一篇对python PLT中的image和skimage处理图片方法详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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详解步骤:

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

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

?
1
2
size = (64, 64)
img.resize(size, image.antialias)#改变尺寸

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

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

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

?
1
2
3
4
5
6
7
8
#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()
?
1
img.rotate(90)#图片旋转90
?
1
img.transpose(image.flip_left_right)#图片镜像

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

二、skimage打开的图片img_data:

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

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

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

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

原文链接:https://blog.csdn.net/u012474716/article/details/78741194

延伸 · 阅读

精彩推荐