OpenCV-Python 调节摄像头分辨率及窗口位置大小

import cv2

cap = cv2.VideoCapture(0)
cap.set(3, 300)
cap.set(4, 300)    #设置摄像头分辨率,3为高,4为宽

while True:
    ret, frame = cap.read()
    
    #设置显示的窗口大小为500,500,建议大于等于摄像头分辨率
    cv2.resizeWindow("camera", 500, 500)
    
    cv2.imshow("camera", frame)

    #移动当前显示窗口至(0,0)
    cv2.moveWindow("camera", 0, 0)

    if cv2.waitKey(1) == ord('q'):
        break


cv2.destroyAllWindows()
    
    

 显示的窗口名字为camera,在对其进行修改时,一定保持名字一致。

 另使得窗口可调节大小的命令

cv2.namedWindow("camera", CV_WINDOW_NORMAL)  #CV_WINDOW_NORMAL就是0,该句放在imshow之前即可。

 

  • 9
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
当可以,下面是一个简单的示例代码: ```python import cv2 import numpy as np import time # 定义摄像头编号 cap = cv2.VideoCapture(0) # 设置摄像头分辨率 cap.set(3, 640) cap.set(4, 480) # 定义颜色阈值 lower_black = np.array([0,0,0]) upper_black = np.array([180,255,50]) # 定义转向角度 angle = 90 while True: # 读取摄像头图像 ret, frame = cap.read() # 将图像转换为HSV颜色空间 hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV) # 根据颜色阈值提取黑线 mask = cv2.inRange(hsv, lower_black, upper_black) # 膨胀操作使黑线更加连续 kernel = np.ones((5,5), np.uint8) mask = cv2.dilate(mask, kernel, iterations=1) # 查找黑线轮廓 contours, hierarchy = cv2.findContours(mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) # 如果没有检测到黑线,则直行 if len(contours) == 0: print("No line detected, go straight") # TODO: 直行代码 else: # 找到最大的轮廓 c = max(contours, key=cv2.contourArea) # 计算轮廓的矩形边界框 rect = cv2.minAreaRect(c) box = cv2.boxPoints(rect) box = np.int0(box) # 计算黑线的中心点 M = cv2.moments(c) cx = int(M['m10']/M['m00']) cy = int(M['m01']/M['m00']) # 如果中心点在左侧,则向左转 if cx < frame.shape[1]//2: print("Turn left") # TODO: 左转代码 # 如果中心点在右侧,则向右转 else: print("Turn right") # TODO: 右转代码 # 显示原始图像和处理后的图像 cv2.imshow("Original", frame) cv2.imshow("Mask", mask) # 按下q键退出程序 if cv2.waitKey(1) & 0xFF == ord('q'): break # 释放摄像头并关闭窗口 cap.release() cv2.destroyAllWindows() ``` 这个代码基本上实现了智能车沿着黑线行驶的功能。当程序检测到黑线时,根据黑线的位置,智能车会向左或向右转动。如果没有检测到黑线,则直行。需要注意的是,代码中的“TODO”部分需要根据具体的硬件和控制方式进行修改。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值