香橙派使用摄像头

配置摄像头

我使用的是ov13855插在了板上的cam1口,需要使用一下命令开启支持

sudo orangepi-config

依次选择system/ hardware/ ov13855-c1,保存后自动重启
在这里插入图片描述
c1 c2 c3是三个摄像头cam口按使用选择

查看ov13855设备

内核会为摄像头在目录/sys/class/video4linux下分配设备信息描述文件

grep mainpath /sys/class/video4linux/v*/name

在这里插入图片描述
对应的是/dev/video11可以输出图像
其中video11和video-camera0 是一个东西

ll /dev/video*

在这里插入图片描述

使用media-ctl查看拓扑结构

media-ctl -p -d /dev/media0

从entity63信息中可以看到名称为‘m01_f_ov13855 2-0036’的entity它对应的节点是/dev/v4l-subdev2
在这里插入图片描述
下面就可以用这个节点调整摄像头了

设置摄像头参数

看看哪些参数可以更改

v4l2-ctl -d /dev/v4l-subdev2 -l

在这里插入图片描述
其中exposure是曝光范围为4~3210,analogue_gain 是亮度128~1984
由于在室内调试,我把亮度和曝光设置成了最高否则画面看不清楚。

v4l2-ctl -d /dev/v4l-subdev2 --set-ctrl 'exposure=3210,analogue_gain=1984'

使用udp传输视频

电脑端python程序

import cv2
import numpy
import socket

HOST=''
PORT=9999
buffSize=65535
server=socket.socket(socket.AF_INET,socket.SOCK_DGRAM) #创建socket对象
server.bind((HOST,PORT))
print('now waiting for frames...')
while True:
  data,address=server.recvfrom(buffSize) #接收编码图像数据
  data=numpy.array(bytearray(data)) #格式转换
  imgdecode=cv2.imdecode(data,1) #解码
  cv2.imshow('frames',imgdecode) #窗口显示
  if cv2.waitKey(1)==27: #按下“ESC”退出
    break
server.close()
cv2.destroyAllWindows()

香橙派端程序

import cv2
import socket
import struct
import time

HOST='10.42.0.1'#电脑端地址
PORT=9999
server=socket.socket(socket.AF_INET,socket.SOCK_DGRAM) 
server.connect((HOST,PORT))
capture=cv2.VideoCapture('/dev/video11') 

w = 3
h = 4
capture.set(w,1024)
capture.set(h,768)
# l = capture.get(w)
# k = capture.get(h)
# print(l,k)
try:
  while True:
    a = time.time()
    success,frame=capture.read()
    result,imgencode=cv2.imencode('.jpg',frame,[cv2.IMWRITE_JPEG_QUALITY,50]) #编码
    server.sendall(imgencode) #发送视频帧数据
    b = time.time()
    print(b-a)
    print(frame.shape)
except Exception as e:
  print(e)
  capture.release()
  server.close()

可以看到画面,但是拍的颜色好像不对
在这里插入图片描述

  • 4
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值