此代码按预期运行,并提供预期输出
converting to gray ...
converting to gray ...
converted to gray
converted to gray
输出:
import multiprocessing
import cv2
import os
path = r"/home/pi/Desktop/calibration.jpg"
image = cv2.imread(path)
def cvtcolor(img):
print "converting to gray ..."
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
print "converted to gray"
cvtcolor(image)
if True:
p = multiprocessing.Process(name='test',
target=cvtcolor,
kwargs={'img':image}
)
p.start()
但是,此代码在执行时会挂起
converting to gray ...
converted to gray
converting to gray ...
在主进程中执行的功能继续进行,但是在" test"中执行的功能进程永远挂起
font-family:'Arial',sans-serif;
我正在使用OpenCV版本3.2.0,在Raspbian Jessie(raspberry pi)上安装详细here
有没有人对此有解释/解决方案?
答案 0 :(得分:-1)
查看返回的内容。如果直接尝试BGR2GRAY,您将得到一个数组,其形状属性与输入图像相同,但只有1种颜色,例如灰色。使用多处理运行相同的函数时,不会返回返回的数组。它没有shape属性,尝试打印输出以查看它的形式,然后可以从中重建图像。