python - 增强图像由空数组组成,而原始图像由具有值的数组组成。为什么会这样?
问题描述
我将文件夹中所有 .png 图像的扩展名更改为 .jpeg ,并将它们重命名为使用此代码,
# Define directories
INPUT = 'input dir'
OUTPUT = 'output dir'
for count, filename in enumerate(os.listdir(INPUT)):
dst = "OTHERS_IMG_" + str(count) + ".jpeg"
src = INPUT + filename
dst = OUTPUT + dst
os.rename(src, dst)
我在这样的单独文件夹中成功地获得了正确格式的图像。NORMAL_IMG_0 NORMAL_IMG_1 NORMAL_IMG_2 。. .
但是在使用 OpenCV 和 imgaug 扩充和读取图像之后,我使用这段代码得到了这样的空数组,
image = cv2.imread('NORMAL/NORMAL_IMG_0.jpeg')
rotate = iaa.Affine(rotate=(-25, 25))
image_rotated = rotate.augment_images([image])[0]
cv2.imwrite("image.jpeg", image_rotated)
我懂了,
[[[0 0 0]
[0 0 0]
[0 0 0]
...
[0 0 0]
[0 0 0]
[0 0 0]]
[[0 0 0]
[0 0 0]
[0 0 0]
...
[0 0 0]
[0 0 0]
[0 0 0]]
[[0 0 0]
[0 0 0]
[0 0 0]
...
[0 0 0]
[0 0 0]
[0 0 0]]
...
[[0 0 0]
[0 0 0]
[0 0 0]
...
[0 0 0]
[0 0 0]
[0 0 0]]
[[0 0 0]
[0 0 0]
[0 0 0]
...
[0 0 0]
[0 0 0]
[0 0 0]]
[[0 0 0]
[0 0 0]
[0 0 0]
...
[0 0 0]
[0 0 0]
[0 0 0]]]
虽然原图是这样的,
[[[ 55 33 21]
[ 47 25 13]
[ 52 30 18]
...
[ 27 18 28]
[ 29 20 30]
[ 29 21 28]]
[[ 81 58 43]
[ 77 54 39]
[ 82 59 44]
...
[ 25 18 25]
[ 26 19 26]
[ 26 19 26]]
[[100 74 57]
[100 74 57]
[101 75 58]
...
[ 24 18 23]
[ 24 18 23]
[ 24 18 23]]
...
[[ 32 29 31]
[ 30 25 27]
[ 31 25 26]
...
[ 61 37 31]
[ 61 37 31]
[ 61 37 31]]
[[ 30 27 29]
[ 29 26 28]
[ 30 25 27]
...
[ 49 28 26]
[ 48 27 25]
[ 48 27 25]]
[[ 28 27 29]
[ 29 26 28]
[ 28 25 27]
...
[ 40 22 21]
[ 39 21 20]
[ 39 21 20]]]
谁能帮我为什么会这样?我还想增加我所有的图像。直到我尝试在目录中增加JPEG格式的图像时,我才注意到这一点。
解决方案
不要更改扩展名,而是尝试将它们编写为带有 jpeg 扩展名的 jpeg 格式。JPEG不是PNG。您可以使用cv2.imread
后跟cv2.imwrite
,或 imagemagick 的转换实用程序。然后再试一次。
推荐阅读
- ns2 - 让 SUMO 车辆重新进入场景,使其使用寿命更长
- c# - 在构造函数上抛出异常
- reporting-services - 忽略空格的 SSRS 列表/Tablix 行为
- html - 在引导程序 4 中使用 justify-content-center 中断标签
- java - 用户可以在登录系统后使用 md5 更改散列密码吗
- eclipse - 无法解析 MavenProject 的依赖项
- php - 如何使用 PDO 将列从序列化更新为 json?
- cakephp-3.0 - CakePHP 3.x 更新多行
- python - django 按来自不同字段的最新日期对查询集进行排序
- php - 多数据搜索功能