首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >垂直镜像和镜像for循环

垂直镜像和镜像for循环
EN

Stack Overflow用户
提问于 2020-10-28 19:52:46
回答 1查看 99关注 0票数 0

我一直在寻找这个问题的一些可能的解决方案,我发现可以使用PIL库,但我想问一下是否有可能通过使用for循环来解决这个问题。

这是我尝试过的:

代码语言:javascript
复制
! git clone https://github.com/carldjapardi/Trial-

import numpy as np
from matplotlib.pyplot import imshow
from PIL import Image

path = "/content/Trial-/chaplin.jpg"
image = Image.open(path).convert('L')
mat_image = np.array(image) #turn to np array 
m, n = mat_image.shape #img shape, m is the height, n is the width

mat_image_reversed = mat_image

for i in range(n):
  reversed_column = []
  for j in range(m-1, -1, -1):
    reversed_column.append(mat_image_reversed[i][j])
  mat_image_reversed[i] = reversed_column

imshow(mat_image_reversed, cmap = 'gray')

问题是我一直收到一个:

代码语言:javascript
复制
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-33-84670325c66b> in <module>()

----> 7   mat_image_reversed[i] = reversed_column

ValueError: cannot copy sequence with size 394 to array axis with dimension 700

我尝试用mat_image_reversed[j] = reversed_column替换它,但它给出了相同的错误

有人能告诉我哪里出了问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-28 20:09:55

代码语言:javascript
复制
…
for i in range(m):
  reversed_column = []
  for j in range(n-1, -1, -1):
…

但我想你需要的是:

代码语言:javascript
复制
mat_image_reversed = np.flip(mat_image,0)

代码语言:javascript
复制
mat_image_reversed = np.flip(mat_image,1)

相应地。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64572300

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档