ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python – 垂直翻转(反向)图像给它的字符串?

2019-09-02 18:57:07  阅读:291  来源: 互联网

标签:python image image-processing reverse flip


所以我有一串RGBA图像数据,每个像素长一个字节.我也知道图像的x和y分辨率.现在我想以一种方式编辑字符串,这会导致图像被垂直翻转或反转,这意味着像素的第一个“行”变成最后一行而相反,对于所有其他“行”都是如此.有快速的方法吗?

解决方法:

要做到你想要的信,这是一种方法:

>>> img = 'ABCDEFGHIJKL'
>>> x, y = 4, 3
>>> def chunks(l, n):
...     for i in xrange(0, len(l), n):
...         yield l[i:i+n]
... 
>>> [row for row in chunks(img, x)]
['ABCD', 'EFGH', 'IJKL']
>>> ''.join(reversed([row for row in chunks(img, x)]))
'IJKLEFGHABCD'

但是,除非你有非常小的图像,否则你最好通过numpy,因为这比Cpython数据类型快一个数量级.你应该看一下flipup的功能.例:

>>> A
array([[ 1.,  0.,  0.],
       [ 0.,  2.,  0.],
       [ 0.,  0.,  3.]])
>>> np.flipud(A)
array([[ 0.,  0.,  3.],
       [ 0.,  2.,  0.],
       [ 1.,  0.,  0.]])

编辑:想要添加一个完整的例子,以防你以前从未使用过NumPy.当然,转换仅适用于非2×2的图像,因为实例化数组具有开销….

>>> import numpy as np
>>> img = [0x00, 0x01, 0x02, 0x03]
>>> img
[0, 1, 2, 3]
>>> x = y = 2
>>> aimg = np.array(img).reshape(x, y)
>>> aimg
array([[0, 1],
       [2, 3]])
>>> np.flipud(aimg)
array([[2, 3],
       [0, 1]])

标签:python,image,image-processing,reverse,flip
来源: https://codeday.me/bug/20190902/1793112.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有