python - 垂直镜像和图像循环
问题描述
我一直在寻找这个问题的一些可能的解决方案,我发现你可以使用 PIL 库,但我想问是否有可能通过使用 for 循环来解决。
这是我尝试过的:
! 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')
问题是我不断收到:
---------------------------------------------------------------------------
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
,但它给出了同样的错误
谁能告诉我出了什么问题?
解决方案
…
for i in range(m):
reversed_column = []
for j in range(n-1, -1, -1):
…
但我想你需要的是:
mat_image_reversed = np.flip(mat_image,0)
或者
mat_image_reversed = np.flip(mat_image,1)
因此。
推荐阅读
- c++ - 为什么成员类型需要前向声明而成员函数不需要?
- c# - 从 LINQ 加载 DataGridView
- python-3.x - 如何通过浏览器循环更改列表中的地址?(Python 3/硒)
- javascript - 如何在将电子邮件设为主要电子邮件之前对其进行验证(Firebase 身份验证)
- numpy - 对 numpy.einsum 进行延迟评估,以避免将中间大维数组存储在内存中
- asp.net-mvc - 将模型数据传递给 Url.Action 方法
- php - PHP 和 Pods:仅将数组值组合到新数组中
- java - 有没有一种简单的方法可以在 Android 上展平 json:api 响应?
- bash - sed/awk 命令在保留空格的同时替换模式
- amazon-web-services - 如何使用 Javascript SDK 在 AWS SNS 订阅上设置消息过滤