增强图像由空数组组成,而原始图像由具有值的数组组成。为什么会这样?
Augmented Images consists of empty arrays whereas Original images consists of arrays with values. Why is it so?
我将文件夹中所有 .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 的转换实用程序。然后重试。
我将文件夹中所有 .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 的转换实用程序。然后重试。