我在做v4l2视频采集的时候,需要将320X240缩小为160X120,请问v4l2缩放是如何实现的?谢谢。

我在做v4l2视频采集的时候,需要将320X240缩小为160X120,请问v4l2缩放是如何实现的?谢谢。,第1张

int posWindow(int *fd)

{

struct v4l2_window window

struct v4l2_format fmt

if(*fd <0)

{

printf("posWindow :fd error :%d\r\棚铅n")

return -1

}

if(-1 == ioctl(*fd, VIDIOC_G_FMT,&fmt))

{

printf("posWindow G_FMT ERROR\r\n")

//return -1

}

fmt.type = V4L2_BUF_TYPE_VIDEO_OVERLAY

fmt.fmt.win.w.left = 100

fmt.fmt.win.w.top = 50

fmt.fmt.win.w.width = 360

fmt.fmt.win.w.height = 288

if(-1 == ioctl(*fd,VIDIOC_S_FMT,&fmt))

{

printf("ERROR FMT SET\r\n")

}

printf("left :%d top :%d width :%d height:%d\r\n",fmt.fmt.win.w.left,fmt.fmt.win.w.top,fmt.fmt.win.w.width,fmt.fmt.win.w.height)

}

调用链岩好:initDisplay(&display_fd)posWindow(&display_fd)初始化显示设备以后调用枣咐缩放函数。

1、打开姿敬photoshop软件,按下ctrl+n,新建一个白色画布

2.在左侧工具栏点击“横排文字工具”。

3.在画布中输入要放大的标志。

4.按Ctrl+T键,选中标志,按住shift键不放,鼠标拖拽调整标志的大小和位置。

ps中选中图片部分进行渗历放大缩小方法如下:

1、选中该图层,使用选框工具选取你需要的部分,按ctrl+J键复制一层;

2、按下ctrl+T键,然后按住shift键的同时,拉动四角迹喊慎的小方滑块即可同比例缩小或放大该部分图片大小。

H和W要设为全局变量,否则的话Form_Load和HScroll1_Change中的H和W是不相等的,也就是说HScroll1_Change中的H和W是固定为0的,而0乘以任何数都是0,所以图片就不见了。

你应该在代码的通用部分加入:

Dim H As Single, W As Single

Width和Height属性都是Single型,所以变量最好也定义为Single型,当然定义为Long型也是可以的。不要定义为Integer型,否则会有溢空枯出的危险。余拆

补充一句:Dim H,W as integer这样的写法是不对的(虽然不一定出错),斗毁洞它相当于:

Dim H

Dim W as integer

正确的写法应该是Dim H As Integer, W As Integer


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12527374.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-08-26
下一篇2025-08-26

发表评论

登录后才能评论

评论列表(0条)

    保存