我有形象(6000*6000)果断。是不是一样:resize到(1000*1000)再resize到(512*512),直接resize到(512*512)?
I have image (6000*6000) resolute. Is it the same :resizing it to (1000*1000) then resizing to (512*512) and resizing it to(512*512) directly?
我在服务器上有大约 200GB+ 的图像数据(大约 6000*6000)。出于便携原因,我希望我可以将它的大小 (cv2) 调整为 (1000*1000),然后将数据传输到另一个云,然后调整为 (512*512) 并执行一些简单的分类任务。调整大小将为我节省很多生命。我只是想知道这样做,除了将 6000*6000 直接调整为 512*512 之外,数据是否会丢失一些信息?
结果应该不同,但我不知道它会如何影响我的模型精度。
img2= cv2.resize(img, (1000, 1000))
img3=cv2.resize(img, (512, 512))
img4=cv2.resize(img2, (512, 512))
img3==img4
array([[[ True, True, True],
[ True, True, True],
[ True, True, True],
...,
[ True, False, True],
[ True, False, True],
[ True, True, True]],
[[ True, True, True],
[ True, True, True],
[ True, True, True],
...,
[ True, True, False],
[ True, True, True],
[ True, True, True]],
[[ True, True, True],
[ True, True, True],
[ True, True, True],
...,
[ True, False, True],
[ True, True, True],
[ True, True, True]],
...,
[[ True, True, True],
[ True, True, True],
[ True, True, True],
当然会丢失信息。
假设您有一张 4 x 4 的图像:
xxxx
xoxo
xxxx
xoxo
示例图像是二进制的。现在您将分辨率更改为 2 x 2. 块,例如
xx
xo
需要在新分辨率定义的新栅格中分配 x
或 o
,因此它们更改为 x
。结果是一张新的 2 x 2 图片:
xx
xx
现在您将其更改回 4 x 4 的分辨率。然而,在 2 x 2 图像中不再有任何 o
可用的信息,因此缩小会导致:
xxxx
xxxx
xxxx
xxxx
这明显不同。
这是一个微不足道的例子,发生多少数据丢失取决于格式的实现,特别是数据的表示和存储方式。但总的来说——是的,显然有信息丢失。
作为建议 - 根据您需要执行的操作,您可以改为将图像块发送到服务器,对这些图像进行分类,接收结果,发送下一个块等等。当然,如果您希望对跨越整个图像的对象进行分类,那么这将行不通。
我在服务器上有大约 200GB+ 的图像数据(大约 6000*6000)。出于便携原因,我希望我可以将它的大小 (cv2) 调整为 (1000*1000),然后将数据传输到另一个云,然后调整为 (512*512) 并执行一些简单的分类任务。调整大小将为我节省很多生命。我只是想知道这样做,除了将 6000*6000 直接调整为 512*512 之外,数据是否会丢失一些信息?
结果应该不同,但我不知道它会如何影响我的模型精度。
img2= cv2.resize(img, (1000, 1000))
img3=cv2.resize(img, (512, 512))
img4=cv2.resize(img2, (512, 512))
img3==img4
array([[[ True, True, True],
[ True, True, True],
[ True, True, True],
...,
[ True, False, True],
[ True, False, True],
[ True, True, True]],
[[ True, True, True],
[ True, True, True],
[ True, True, True],
...,
[ True, True, False],
[ True, True, True],
[ True, True, True]],
[[ True, True, True],
[ True, True, True],
[ True, True, True],
...,
[ True, False, True],
[ True, True, True],
[ True, True, True]],
...,
[[ True, True, True],
[ True, True, True],
[ True, True, True],
当然会丢失信息。
假设您有一张 4 x 4 的图像:
xxxx
xoxo
xxxx
xoxo
示例图像是二进制的。现在您将分辨率更改为 2 x 2. 块,例如
xx
xo
需要在新分辨率定义的新栅格中分配 x
或 o
,因此它们更改为 x
。结果是一张新的 2 x 2 图片:
xx
xx
现在您将其更改回 4 x 4 的分辨率。然而,在 2 x 2 图像中不再有任何 o
可用的信息,因此缩小会导致:
xxxx
xxxx
xxxx
xxxx
这明显不同。
这是一个微不足道的例子,发生多少数据丢失取决于格式的实现,特别是数据的表示和存储方式。但总的来说——是的,显然有信息丢失。
作为建议 - 根据您需要执行的操作,您可以改为将图像块发送到服务器,对这些图像进行分类,接收结果,发送下一个块等等。当然,如果您希望对跨越整个图像的对象进行分类,那么这将行不通。