您尚未登录。

楼主 #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
已发帖子: 129
积分: 22

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
已发帖子: 129
积分: 22

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
已发帖子: 129
积分: 22

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

vip888888 说:

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

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

离线

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

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

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
已发帖子: 18
积分: 62.5

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

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

离线

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

哇酷小二
管理员
所在地: 你猜
注册时间: 2020-04-22
已发帖子: 3,387
积分: 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另存为就可以了。不是固件来的。

离线

#16 2022-01-09 01:03:43

CATdaily
会员
注册时间: 2020-01-28
已发帖子: 14
积分: 21.5

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

参考了这个: https://whycan.com/t_5327.html
发现用   media-ctl --set-v4l2 '"ov2640 0-0030":0[fmt:YUYV8_2X8/640x480]'  命令可以单独设置OV2640的分辨率和图像格式,
然后再用   fswebcam -d /dev/video0 --no-banner -r 640x480 -S 10 1.jpg
就能抓到图像了,本地的jpg文件上传到开发PC就能打开了。

离线

#17 2022-04-22 23:34:34

ubuntu
会员
注册时间: 2020-03-30
已发帖子: 272
积分: 250

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

@CATdaily

media-ctl --set-v4l2 '"ov5640 1-003c":0[fmt:YUYV8_2X8/640x480]'

LD_LIBRARY_PATH=/usr/lib/mjpg-streamer/:$LD_LIBRARY_PATH mjpg_streamer -i "input_uvc.so -y -d /dev/video0" -o "output_http.so -p 8080 -w /usr/share/mjpg-streamer/www"

然后就 OK 了。

离线

#18 2022-07-27 15:24:06

future
会员
注册时间: 2021-11-28
已发帖子: 49
积分: 26

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

楼主,我也是使用的这个固件,编译完成下载进去识别到了摄像头,并打印了id,但是使用fswebcam -d /dev/video0 -S 3 -p UYVY test19.bmp抓取图像的时候图像是花的,这个是需要改动一下驱动嘛,我是没有做任何更改的,我看时钟线和信号线都有波形的,不知道哪里出了问题。

离线

#19 2022-08-23 23:18:53

future
会员
注册时间: 2021-11-28
已发帖子: 49
积分: 26

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

@vip888888
您好,请教下如何修改底层驱动直接输出jpg阿,我百度了修改了后探测支持格式还是灭有看到jpg,在不修改驱动的情况下,使用v4l2命令行可以正常拍照片的,但是按照v4l2流程写代码获取图片输出yuv,用软件查看就一片绿色,麻烦指导下哈。

离线

#20 2022-09-28 15:37:42

mind
会员
注册时间: 2022-08-16
已发帖子: 6
积分: 1

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

@future
linux-5.4.99\drivers\media\i2c\ov2640.c

离线

#21 2022-10-30 08:02:05

Chin
会员
注册时间: 2020-10-19
已发帖子: 61
积分: 39

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

@future
请问后续解决了吗?拍出来一片绿

离线

页脚

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

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