Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用OpenCV for python生成的图像在docker容器中运行时比在本地计算机上运行时更大_Python_Docker_Opencv - Fatal编程技术网

使用OpenCV for python生成的图像在docker容器中运行时比在本地计算机上运行时更大

使用OpenCV for python生成的图像在docker容器中运行时比在本地计算机上运行时更大,python,docker,opencv,Python,Docker,Opencv,我在Python2.7中使用OpenCV将4个图像垂直缝合在一起,然后输出1个文件。以下是cv merge.py脚本: import cv2 import numpy as np import time import sys import os location = os.path.join(sys.path[0], "n1.png") img = cv2.imread(location) img1 = img img2 = img img3 = img img4 = img start_t

我在Python2.7中使用OpenCV将4个图像垂直缝合在一起,然后输出1个文件。以下是
cv merge.py
脚本:

import cv2
import numpy as np
import time
import sys
import os

location = os.path.join(sys.path[0], "n1.png")
img = cv2.imread(location)
img1 = img
img2 = img
img3 = img
img4 = img

start_time = time.time()
new_image = np.concatenate((img1, img2, img3, img4), axis=0)
cv2.imwrite(os.path.join(sys.path[0], 'out.png'), new_image, [int(cv2.IMWRITE_PNG_COMPRESSION), 6])

print("time time: %s" % (time.time() - start_time))

sys.stdout.flush()
在MacOS上本地运行将在大约12秒内生成一个大小约为30MB的文件,用于上面指定的6级压缩

但是,当我在运行Node.js服务器的Ubuntu 16.04 docker容器中运行它时。这需要稍长的时间(不是问题),但每次文件大小为130MB

环境应该无关紧要,因为它在我的本地机器和正在使用的docker容器上都是相同的输入图像。当我在两个不同的环境中使用相同的压缩级别运行脚本时,为什么生成的文件大小不同

没有超出内存和CPU级别,导出的映像看起来相同

如何在本地以及docker容器内运行脚本:

python cv-merge.py

它们可能有不同的库(C/C++)来编写图像。@furas但在本地和docker容器中,它们使用的是python cv包,但python cv使用的许多C/C++库在不同的系统中可能不同。它们可能有不同的库(C/C++)在本地和docker容器中,他们使用的是python cv Package,但python cv使用了许多C/C++库,这些库在不同的系统中可能会有所不同。