python+opencv图像处理,基于python的opencv图像处理

  python+opencv图像处理,基于python的opencv图像处理

  为了获得良好的图像效果,需要设定照相机的参数。

  当照相机流程是帽子时,设置参数是cap.set(参数号,参数) )

  获取参数值的函数是cap.get(参数编号)

  让我们看一下照相机的参数设定读取的例子。在代码中设置三个参数,然后读取这三个参数。

  选择导入cv2#相机编号,并通常从0开始cap=cv2.videocapture(0),然后选择参数cap . set(31280)cap . set(41024)cap。set(0)0.1)print(width={ }(格式)cap。get(3))(print)height={ }(.format ).cap.get))))

  宽度=1280.0

  高度=720.0

  暴露度=-1.0

  宽度、高度、设定有效,但曝光量的设定恢复为无效。

  相机可以设定什么样的参数?参数号码的对应关系如何?请看下面的列表0 .cv _ cap _ prop _ pos _ mseccurrentpositionofthevideofileinmilliseconds。1 .cv _ cap _ prop _ pos _ frames 0-bames 0 tion of video file 3。cv _ cap _ prop _ frame _ wid de cap _ prop _ frame _ heighthehightframesinthevideostream。5.5 ._ counnumberroframes in the vedio file。8 .cv _ cap _ prop _ formatformoftobjectsreturnedbyretrieve(。9 .cv _ cap)当前捕获模式。10 .cv _ cap _ prop _ brightness布罗德。11 .cv _ cap _ prop _ contraststoroftheimage(仅用于cor ) op _ huehueoftheimage(仅用于相机).cv15.cv _ cap _ prop _ exposure曝光(仅针对相机) )。16 .cv _ cap _ prop _ convert _ rgbbooleanflags表示heterimagesshouldbeconvertedtorgb。17 .cv _ cap _ prop _ prop ocameras(注:仅限受dc 1394 v2支持。x后端电流)此处

  一般来说,读取返回-1的代码会无效。让我们看看检测有效无效的代码。上面的代码更改了

  选择导入cv2#相机号,通常从0开始先设定cap=cv2.videocapture(0),然后设定参数(forIinrange ) 47 ) (:print))编号={ } parararint读取的cap.get(I))而True: ret,img=cap.read ) cv2.imshow),img)按经济社会委员会键退出key=c

  v2。如果key==27,等待键(10):断开cv 2。destroyallwindows()cv2 .视频捕获(0)。释放()运行结果是:

  0=0.0

  1=0.0

  2=-1.0

  3=1280.0

  4=720.0

  5=30.0

  6=842094158.0

  7=-1.0

  8=-1.0

  9=0.0

  10=0.0

  11=0.0

  12=64.0

  13=0.0

  14=0.0

  15=-1.0

  16=1.0

  17=-1.0

  18=-1.0

  19=-1.0

  20=2.0

  21=-1.0

  22=100.0

  23=4600.0

  24=-1.0

  25=-1.0

  26=-1.0

  27=-1.0

  28=-1.0

  29=-1.0

  30=-1.0

  31=-1.0

  32=3.0

  33=-1.0

  34=-1.0

  35=-1.0

  36=-1.0

  37=-1.0

  38=-1.0

  39=-1.0

  40=1.0

  41=1.0

  42=1400.0

  43=-1.0

  44=-1.0

  45=-1.0

  46=-1.0

  可以看到我的摄像头哪些参数可以设置,不为-1的。

  在程序中编号很容易弄错,可以用如下方式比较好看一点,也不容易出错。

  第一组(cv2 .CAP _ PROP _ FRAME _ WIDTH 1280

  第一组(cv2 .帽_道具_框架_高度,1024)

  第一组(cv2 .CAP_PROP_EXPOSURE,0.1)

  上面表不完整,但基本都包括了我们看看现在中文版里面怎么说的:

  https://github。com/opencv/opencv/blob/master/modules/视频io/include/opencv 2/视频io。HPP

  枚举视频捕获属性{ CAP_PROP_POS_MSEC=0,//!视频文件的当前位置,以毫秒为单位CAP_PROP_POS_FRAMES=1,//!下一个要解码/捕获的帧的从0开始的索引106 . AVI比率=2,//!视频文件的相对位置:0=影片的开头,1=影片的结尾. CAP_PROP_FRAME_WIDTH=3,//!视频流中帧的宽度. CAP_PROP_FRAME_HEIGHT=4,//!视频流中帧的高度. CAP_PROP_FPS=5,//!帧速率FOURCC=6,//!编解码器的四字符代码。参见视频作者:fourcc .CAP_PROP_FRAME_COUNT=7,//!视频文件中的帧数CAP_PROP_FORMAT=8,//!视频捕获:检索()返回的%Mat对象的格式. CAP_PROP_MODE=9,//!表示当前捕获模式的后端特定值10 . CAP _ PROP _ BRIGHTNESS=10,//!图像的亮度(仅适用于支持的相机)。CAP_PROP_CONTRAST=11,//!图像的对比度(仅适用于相机)。CAP_PROP_SATURATION=12,//!图像的饱和度(仅适用于相机)。CAP_PROP_HUE=13,//!图像的色调(仅适用于相机)。CAP_PROP_GAIN=14,//!图像增益(仅适用于支持的摄像机)。CAP_PROP_EXPOSURE=15,//!曝光(仅适用于支持的相机)。CAP_PROP_CONVERT_RGB=16,//!指示图像是否应转换为RGB的布尔标志. CAP _ PROP _ WHITE _ BALANCE _ BLUE _ U=17,//!目前不支持CAP _ PROP _整流=18,//!立体相机的整流标志(注:目前仅DC1394 v 2.x后端支持)。CAP_PROP_MONOCHROME=19,CAP_PROP_SHARPNESS=20,CAP_PROP_AUTO_EXPOSURE=21,//!DC1394:曝光控制由相机完成,用户可以使用此功能调整参考水平. CAP_PROP_GAMMA=22,CAP_PROP_TEMPERATURE=23,CAP_PROP_TRIGGER=24,CAP_PROP_TRIGGER_DELAY=25,CAP _ PROP _ WHITE _ BALANCE _ RED _ V=26,CAP_PROP_csdl=27,CAP_PROP_FOCUS=28,CAP_PROP_GUID=29,CAP_PROP_ISO_SPEED=30,CAP_PROP_BACKLIGHT=32,CAP_PROP_PAN=33,CAP_PROP_TILT=34,CAP _ PROP _ PROP _ TILT弹出视频/摄像机过滤器对话框(注意:目前仅受DSHOW后端支持。属性值被忽略)CAP_PROP_BUFFERSIZE=38,CAP_PROP_AUTOFOCUS=39,CAP_PROP_SAR_NUM=40,//!样本纵横比:num/DEN(num)CAP _ PROP _ SAR _ DEN=41,//!样本纵横比:num/den(den)CAP _ PROP _ back end=42,//!当前后端(枚举视频捕获应用程序).只读属性CAP_PROP_CHANNEL=43,//!视频输入或频道号(仅适用于支持的摄像机)CAP_PROP_AUTO_WB=44,//!启用/禁用自动白平衡CAP_PROP_WB_TEMPERATURE=45,//!白平衡色温# IFN def CV _ DOXYGEN CV _ _ CAP _ PROP _ LATEST # endif };其实参数取值范围很重要,看来我还是要查找资料。下面是别人的一个例子。

  capture.set(CV_CAP_PROP_FPS,30);//帧率帧/秒

  捕捉。set(CV _ CAP _ PROP _ BRIGHTNESS,1);//亮度

  捕捉。set(CV _ CAP _ PROP _ CONTRAST,40);//对比度40

  捕捉。set(CV _ CAP _ PROP _ SATURATION,50);//饱和度50

  capture.set(CV_CAP_PROP_HUE,50);//色调50

  捕捉。set(CV _ CAP _ PROP _ EXPOSURE,50);//曝光50 获取摄像头参数

  要核实参数范围,我们用一个现成的软件,比如窗子的相机,或者AMcap,linux下的guvcview,奶酪。

  在设置好参数后,我们的大蟒程序获取他们的参数,是个比较好的办法。

  然后用大蟒运行获取所有参数:

  对于范围(49)内的I:如果ABS(cap。get(I)1)0.001:print( { }).参数={} 。格式(I,cap.get(i)))我的运行结果如下:

  ipdb 0.parameter=0.0

  1 .参数=0.0

  3 .参数=1280.0

  4 .参数=720.0

  5 .参数=30.0

  6 .参数=842094158.0

  9 .参数=0.0

  10 .参数=0.0

  11 .参数=0.0

  12 .参数=64.0

  13 .参数=0.0

  14 .参数=0.0

  16 .参数=1.0

  20 .参数=2.0

  22 .参数=100.0

  23 .参数=4600.0

  32 .参数=3.0

  40 .参数=1.0

  41 .参数=1.0

  42 .参数=1400.0

  在不知道参数范围的情况下调整参数比较盲目。

  下面看我用安培的参数调整对话框,大致可以看出参数调整的范围。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • opencv图像识别数字,opencv 识别
  • opencv图像识别数字,opencv 识别,如何基于opencv实现简单的数字识别
  • opencv图像的旋转角度计算,opencv图像仿射变换
  • opencv图像的旋转角度计算,opencv图像仿射变换,OpenCV图像几何变换之透视变换
  • opencv图像的旋转角度计算,opencv 旋转任意角度
  • opencv图像的旋转角度计算,opencv 旋转任意角度,opencv图片的任意角度旋转实现示例
  • opencv图像处理函数,opencv图像轮廓合并
  • opencv图像处理函数,opencv图像轮廓合并,OpenCV图像处理之七种常用图像几何变换
  • opencv双线性插值函数,opencv 图像插值
  • LBPH人脸识别,基于opencv的人脸识别技术
  • LBPH人脸识别,基于opencv的人脸识别技术,Opencv LBPH人脸识别算法详解
  • ,,OpenCV黑帽运算(BLACKHAT)的使用
  • opencv双线性插值函数,opencv 图像插值,C++ OpenCV实现图像双三次插值算法详解
  • ,,C语言 OpenCV实现柱面投影
  • ,,C++ Opencv imfill孔洞填充函数的实现思路与代码
  • 留言与评论(共有 条评论)
       
    验证码: