在raspberry Pi2上读取临时文件中的图像

2024-10-01 09:31:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我整晚都在寻找一个解决方案,或者至少对问题发生的地方有所了解,所以我就在这里。在

我用wsgi运行一个与Apache相连的Flask服务器。 我从一个用户网络摄像头中恢复一张图片作为base64字符串(从URI中恢复),并将其写入一个临时文件中。 我对另一个临时文件中的用户的个人资料图片(比如Facebook)也做了同样的处理。在

    # Decode base64 to image data
    imgdataCam = stringBase64Cam.decode('base64')
    imgdataPro = stringBase64Pro.decode('base64')

    # Create temporary files
    tempFile1 = tempfile.NamedTemporaryFile()
    tempFile2 = tempfile.NamedTemporaryFile()

    # Write images data in files
    tmpImg1=open(tempFile1.name,'wb')
    tmpImg1.write(imgdataCam)
    tmpImg1.close()
    tmpImg2=open(tempFile2.name,'wb')
    tmpImg2.write(imgdataPro)
    tmpImg2.close()

稍后,我尝试将这些文件(临时文件仍未关闭,因此它们仍然存在)作为

^{pr2}$

但是看起来好像什么都没有发生,我到处都打印了一些,看起来“cv2.imread()”正在停止我的程序,没有任何错误消息。 我还试着用PIL来读那些图片:

    pilImg1 = Image.open(tempFile1.name).convert('RGB') 
    ocvImg1 = np.array(pilImg1)
    img1 = ocvImg1[:, :, ::-1].copy()

有了PIL,我可以读取文件,但我遇到了与imread相同的问题

    greyImg = cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY) 

稍后我的节目。在

在我的笔记本电脑上一切都运行得很好,但一旦我上传到我的树莓派,我得到这些问题。 有人能帮我弄清楚它是从哪里来的吗?在

当我在这个树莓上用“pythoninit.py”运行flask serveur时,它也能很好地工作。在


Tags: 用户namedata图片filesopentempfilecv2
1条回答
网友
1楼 · 发布于 2024-10-01 09:31:49

我终于找到了问题的根源。在

我无法在我的raspberry上读取该文件,因为它正在使用wsgi和apache,并且没有访问这些文件的权限。我通过在apachevhost配置文件(/etc/apache2/sites available)中添加以下行来修复我的isue/我的应用程序.conf)公司名称:

WSGIDaemonProcess fbApp user=www-data group=www-data threads=2

我仍然不明白为什么Opencv没有返回任何错误。希望它能帮助有同样问题的人。在

相关问题 更多 >