您尚未登录。

楼主 #1 2020-10-13 21:43:50

vip888888
会员
注册时间: 2020-07-16
已发帖子: 141
积分: 138

请教大佬f1c200s在Linux下 获取ov2640的jpeg的方法

板子就买的这个了。
工程用的大佬的这个,已经支持了ov2640 https://whycan.com/t_5221.html。
TINY200.jpg

请教下在linux中直接获取jpeg的方法,底层的话可以直接改驱动输出jpeg。这个底层输出jpeg我大概改的有点点输出,图片看起来有点错位。
camera.jpg
我应用上还是按照YUYV的方式初始化摄像头的。以此来获取一帧数据。但是好像不是很好使。
camera1.png
camera2.png

最近编辑记录 vip888888 (2020-10-13 21:45:05)

离线

#2 2020-10-15 12:23:44

sprintf
会员
注册时间: 2020-09-11
已发帖子: 50
积分: 45

Re: 请教大佬f1c200s在Linux下 获取ov2640的jpeg的方法

楼主解决了没?我有个Linux的也是接的2640的像输出jpeg保存,但是板子没有硬件编码,获取yuv的数据软件来编码非常慢。

离线

楼主 #3 2020-10-22 12:55:14

vip888888
会员
注册时间: 2020-07-16
已发帖子: 141
积分: 138

Re: 请教大佬f1c200s在Linux下 获取ov2640的jpeg的方法

关于乱码的问题,后来用二进制查看得到的jpeg数据,发现当我用mmap的时候把width设置成640的时候可以看到是多填充了一些0数据导致数据错乱,根据ov2640输出jpeg的格式开头是0xff 0xd8 结尾是0xff 0xd9。看数据发现每次输出的循环是1280(yuyv输出每个像素2字节640*2),数据前面的1024个字节是jpeg的数据剩余的都被填充为0。所以直接导致了输出的JPEG错乱。根据此结果我摄像头初始化的时候将widht设置成512(继续用yuyv获取数据512*2=1024)。

ov2640输出jpeg的时候hync和pclk输出都不是固定的,而且一张jpeg的长度本身也不是固定,得看压缩情况,所以如果要保存一张jpeg对于程序来说并不确定是多大,所以利用jpeg结尾符号来做一次数据处理,如下图,就用此板经过测试大概计算一次15K的JPEG大概耗时3ms,写入耗时1.5ms左右(sd卡)。
ov1.png

经过修改测试,得出结论在1600x1200的情况下输出jpeg是15fps。保存存储完全没问题,在800x600的情况下测试输出jpeg的速度达到了45fps。存储速度和读取都没问题。
示波器实测800x600的vync输出速度
wave1.jpg

此速度下保存的jpeg如下,也完全ok。直接获取数据存储。
ov2.png

至此完成 linux下获取ov2640的jpeg并存储。

最近编辑记录 vip888888 (2020-10-22 13:16:33)

离线

#4 2020-10-25 10:28:05

tianjjff
会员
注册时间: 2018-12-24
已发帖子: 111
积分: 69

Re: 请教大佬f1c200s在Linux下 获取ov2640的jpeg的方法

vip888888 说:

板子就买的这个了。
工程用的大佬的这个,已经支持了ov2640 https://whycan.com/t_5221.html。
https://whycan.com/files/members/4813/TINY200.jpg

请教下在linux中直接获取jpeg的方法,底层的话可以直接改驱动输出jpeg。这个底层输出jpeg我大概改的有点点输出,图片看起来有点错位。
https://whycan.com/files/members/4813/camera.jpg
我应用上还是按照YUYV的方式初始化摄像头的。以此来获取一帧数据。但是好像不是很好使。
https://whycan.com/files/members/4813/camera1.png
https://whycan.com/files/members/4813/camera2.png

请问楼主,改输出jpeg是怎么改的?改初始化寄存器吗?可否参考下

最近编辑记录 tianjjff (2020-10-25 10:31:17)

离线

楼主 #5 2020-10-25 21:02:09

vip888888
会员
注册时间: 2020-07-16
已发帖子: 141
积分: 138

Re: 请教大佬f1c200s在Linux下 获取ov2640的jpeg的方法

tianjjff 说:
vip888888 说:

板子就买的这个了。
工程用的大佬的这个,已经支持了ov2640 https://whycan.com/t_5221.html。
https://whycan.com/files/members/4813/TINY200.jpg

请教下在linux中直接获取jpeg的方法,底层的话可以直接改驱动输出jpeg。这个底层输出jpeg我大概改的有点点输出,图片看起来有点错位。
https://whycan.com/files/members/4813/camera.jpg
我应用上还是按照YUYV的方式初始化摄像头的。以此来获取一帧数据。但是好像不是很好使。
https://whycan.com/files/members/4813/camera1.png
https://whycan.com/files/members/4813/camera2.png

请问楼主,改输出jpeg是怎么改的?改初始化寄存器吗?可否参考下

网上一搜就有了,2640手册没有关于jpeg方面的说明,我也就网上搜的然后加到初始化就行了。

离线

#6 2020-10-26 10:13:23

tianjjff
会员
注册时间: 2018-12-24
已发帖子: 111
积分: 69

Re: 请教大佬f1c200s在Linux下 获取ov2640的jpeg的方法

vip888888 说:
tianjjff 说:
vip888888 说:

板子就买的这个了。
工程用的大佬的这个,已经支持了ov2640 https://whycan.com/t_5221.html。
https://whycan.com/files/members/4813/TINY200.jpg

请教下在linux中直接获取jpeg的方法,底层的话可以直接改驱动输出jpeg。这个底层输出jpeg我大概改的有点点输出,图片看起来有点错位。
https://whycan.com/files/members/4813/camera.jpg
我应用上还是按照YUYV的方式初始化摄像头的。以此来获取一帧数据。但是好像不是很好使。
https://whycan.com/files/members/4813/camera1.png
https://whycan.com/files/members/4813/camera2.png

请问楼主,改输出jpeg是怎么改的?改初始化寄存器吗?可否参考下

网上一搜就有了,2640手册没有关于jpeg方面的说明,我也就网上搜的然后加到初始化就行了。

谢谢楼主,网上搜到了寄存器代码,已经改了初始化;测试应用能发下参考下吗?还不会v4l2编程

离线

楼主 #7 2020-10-26 12:40:33

vip888888
会员
注册时间: 2020-07-16
已发帖子: 141
积分: 138

Re: 请教大佬f1c200s在Linux下 获取ov2640的jpeg的方法

应用获取摄像头数据参考文件如下,  下载之后另存为.c就行了(因为不支持上传后缀.c的文件所以重命名了而已)。
testApp.gz

最近编辑记录 vip888888 (2020-10-26 12:42:57)

离线

#8 2020-10-26 12:56:31

tianjjff
会员
注册时间: 2018-12-24
已发帖子: 111
积分: 69

Re: 请教大佬f1c200s在Linux下 获取ov2640的jpeg的方法

vip888888 说:

应用获取摄像头数据参考文件如下,  下载之后另存为.c就行了(因为不支持上传后缀.c的文件所以重命名了而已)。
testApp.gz

谢谢楼主,我自己参考网上写的获取不到数据,不知道是程序有问题还是驱动初始化没改好,等下用你这个程序测试下

离线

#9 2020-10-26 14:47:58

tianjjff
会员
注册时间: 2018-12-24
已发帖子: 111
积分: 69

Re: 请教大佬f1c200s在Linux下 获取ov2640的jpeg的方法

vip888888 说:

应用获取摄像头数据参考文件如下,  下载之后另存为.c就行了(因为不支持上传后缀.c的文件所以重命名了而已)。
testApp.gz

可以获取jpg图片了,谢谢楼主!

离线

楼主 #10 2020-10-26 15:02:21

vip888888
会员
注册时间: 2020-07-16
已发帖子: 141
积分: 138

Re: 请教大佬f1c200s在Linux下 获取ov2640的jpeg的方法

tianjjff 说:
vip888888 说:

应用获取摄像头数据参考文件如下,  下载之后另存为.c就行了(因为不支持上传后缀.c的文件所以重命名了而已)。
testApp.gz

可以获取jpg图片了,谢谢楼主!

客气客气,好了就行。

离线

#11 2020-10-29 20:48:21

Liuzhijun2008
会员
注册时间: 2020-10-29
已发帖子: 2
积分: 2

Re: 请教大佬f1c200s在Linux下 获取ov2640的jpeg的方法

vip888888 说:
tianjjff 说:
vip888888 说:

应用获取摄像头数据参考文件如下,  下载之后另存为.c就行了(因为不支持上传后缀.c的文件所以重命名了而已)。
testApp.gz

可以获取jpg图片了,谢谢楼主!

客气客气,好了就行。

Ov5640不知道可不可以。

离线

楼主 #12 2020-10-30 20:56:02

vip888888
会员
注册时间: 2020-07-16
已发帖子: 141
积分: 138

Re: 请教大佬f1c200s在Linux下 获取ov2640的jpeg的方法

你可以自己试下,我没有这个摄像头,理论上来说应该都有方法搞定吧。

离线

#13 2021-03-19 17:36:52

gzhssl
会员
注册时间: 2019-11-22
已发帖子: 12
积分: 12

Re: 请教大佬f1c200s在Linux下 获取ov2640的jpeg的方法

文件损坏了呀,打不开~··

离线

#14 2021-03-19 18:04:25

哇酷小二
管理员
注册时间: 2020-04-22
已发帖子: 2,457
积分: 1902

Re: 请教大佬f1c200s在Linux下 获取ov2640的jpeg的方法

vip888888 说:

板子就买的这个了。
工程用的大佬的这个,已经支持了ov2640 https://whycan.com/t_5221.html
https://whycan.com/files/members/4813/TINY200.jpg

请教下在linux中直接获取jpeg的方法,底层的话可以直接改驱动输出jpeg。这个底层输出jpeg我大概改的有点点输出,图片看起来有点错位。
https://whycan.com/files/members/4813/camera.jpg
我应用上还是按照YUYV的方式初始化摄像头的。以此来获取一帧数据。但是好像不是很好使。
https://whycan.com/files/members/4813/camera1.png
https://whycan.com/files/members/4813/camera2.png

离线

楼主 #15 2021-03-19 23:07:19

vip888888
会员
注册时间: 2020-07-16
已发帖子: 141
积分: 138

Re: 请教大佬f1c200s在Linux下 获取ov2640的jpeg的方法

gzhssl 说:

文件损坏了呀,打不开~··

这只是一个应用层的.c另存为就可以了。不是固件来的。

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn