搜索
bottom↓
回复: 7

求助树莓派中使用Opencv写图片出错的问题

[复制链接]

出0入4汤圆

发表于 2022-5-10 19:15:24 | 显示全部楼层 |阅读模式
在树莓派上写了一个使用Opencv采集图片的python程序,程序每10秒保存一张640*480的灰度图片。图片保存的格式是jpg,代码
  1. cv2.imwrite(imgPath,lastGray)
复制代码

结果发现一天里面产生的大概8千张图片会丢失十几张,保存成功的一些图片也有一些图片只保存了一半。查了一下说是opencv保存为jpg格式的时候会出问题,建议改成bmp格式的。这个我改成了bmp格式,正在重新采集。目前还没有结果。
但是刚才发现了另外一个很奇怪的问题,我在树莓派上安装软件的时候,提示我
  1. dpkg: unrecoverable fatal error, aborting:
  2. files list file for package 'libgs9:armhf' is missing final newline
复制代码

我看了一下/var/lib/dpkg/info/libgs9:armhf.list文件,发现里面的内容居然是我之前保存的图片文件的名字,这些文件的保存时间也不是连续的,没有什么规律。而且文件名中的大写的首字母也变成小写了。

从这个文件内容看,像是文件系统中的目录项的结构。
  1. struct ext4_dir_entry_2 {
  2.         __le32        inode;                        /* Inode number */
  3.         __le16        rec_len;                /* Directory entry length */
  4.         __u8        name_len;                /* Name length */
  5.         __u8        file_type;
  6.         char        name[EXT4_NAME_LEN];        /* File name */
  7. };
复制代码

这一点就挺可怕了,就是说我写用opencv写图片的时候会污染磁盘中的其他文件。当然期间我也做了一些其他操作,但是肯定是没有操作这个/var/lib/dpkg/info/libgs9:armhf.list文件。
所以我的疑惑是这个问题是怎么产生的。是python的bug?是opencv的bug?还是linux文件系统的bug?是树莓派可靠性的问题?还是我自己操作失误造成的问题?
如果是我自己操作造成的问题的话还好。但是如果是这些bug的话,那么后面做东西的话真要好好考虑了。
麻烦熟悉linux的大神帮忙解惑啊。谢谢。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出215入1068汤圆

发表于 2022-5-10 23:14:57 来自手机 | 显示全部楼层
數據是寫到 tf 卡上面的吧?
會不會是卡的問題?什麼牌子什麼規格的卡?

出0入4汤圆

 楼主| 发表于 2022-5-11 02:12:45 来自手机 | 显示全部楼层
dukelec 发表于 2022-5-10 23:14
數據是寫到 tf 卡上面的吧?
會不會是卡的問題?什麼牌子什麼規格的卡?

(引用自2楼)

谢谢大神回复。
确实是写到tf卡上的,这个树莓派已经连续运行将近两年,之前没有存储的需求,所以也没关注。最近增加功能的时候想着先存在tf卡上做调试。TF卡是闪迪的U1 C10卡。
现在也感觉是TF卡的问题。之前也想过可能是tf卡的问题,但是考虑到我自己用的小蚁摄像头里面的存储卡已经用了五年了,功能一直正常,我是觉得视频写入的话肯定要比我这种写入图片的方式要更频繁,当时就感觉可能不是tf卡的问题。
大神,麻烦问一下,对于tf卡的这种故障,linux有没有一个纠错或者报警的机制?今天要不是碰巧要安装软件,还发现不了这个问题。这种故障能不能在软件中识别出来?如果linux无法发现tf卡故障,那么我改用固态硬盘的话,是不是就能在一定的时间里避免这个问题了?

出215入1068汤圆

发表于 2022-5-11 02:52:59 来自手机 | 显示全部楼层
本帖最后由 dukelec 于 2022-5-11 03:01 编辑
thepresent 发表于 2022-5-11 02:12
谢谢大神回复。
确实是写到tf卡上的,这个树莓派已经连续运行将近两年,之前没有存储的需求,所以也没关 ...

(引用自3楼)


linux 系統一般一定次數關機/開機(umount/mount)後,再次開機 mount 的時候會自動用 fsck 強制檢查一下文件系統,如果有錯會打印出來,可以通過系統 log 查看是否有錯

還有就是,比較差的 tf 卡和 u 盤,有的時候感覺不正常,dmesg 可以看到頻繁報告 io 錯誤,這個錯誤意味着卡和 u 盤可以扔了(排除接觸不良的情況下)

更重要的還是卡的質素,買 tf 卡有一個重要事項:國際大廠的前提下,要買包裝上明確標註了寫速度的卡,寫的速度至少要達到 60MB/s

還有是要避免意外斷電,建議你程序定時全盤 sync

出0入4汤圆

 楼主| 发表于 2022-5-11 17:17:59 | 显示全部楼层
dukelec 发表于 2022-5-11 02:52
linux 系統一般一定次數關機/開機(umount/mount)後,再次開機 mount 的時候會自動用 fsck 強制檢查一下 ...
(引用自4楼)

谢谢回复。
今天又看了一下昨天下午开始采集的数据,果然又出问题了。我昨天也用另外一个基本上没有用过的树莓派采集数据,一天没出问题。看来就是TF卡坏了。准备先挂个移动固态硬盘暂时用着。后面买一个cm4配上nvme的硬盘来存数据。现在涨价太厉害了。

出215入1068汤圆

发表于 2022-5-11 17:45:57 来自手机 | 显示全部楼层
thepresent 发表于 2022-5-11 17:17
谢谢回复。
今天又看了一下昨天下午开始采集的数据,果然又出问题了。我昨天也用另外一个基本上没有用过 ...

(引用自5楼)

tf 卡買好點的還是比較可靠的,我電腦用 tf 卡做擴展硬盤,存放代碼等重要數據(有定期備份)

sandisk 的卡紅黑的比較好,其次是紅黃,最差的是紅灰,只有最差的沒標寫速度。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入25汤圆

发表于 2022-5-11 19:56:25 来自手机 | 显示全部楼层
红黑当然好啦

出0入4汤圆

 楼主| 发表于 2022-5-11 20:48:05 来自手机 | 显示全部楼层
dukelec 发表于 2022-5-11 17:45
tf 卡買好點的還是比較可靠的,我電腦用 tf 卡做擴展硬盤,存放代碼等重要數據(有定期備份)

sandisk  ...

(引用自6楼)

嗯,谢谢。果然,我买的的是红灰。以后要买红黑啦
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子论坛 -- 东莞阿莫电子网站 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行@2004 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2022-9-25 07:39

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表