opencv周记

opencv周记1

opencv基础操作

读片读取、显示、写入

cv.2imread(“文件名”,读取方式)

cv2.IMREAD_COLOR(或1):加载彩色图像,

cv2.IMREAD_GRAYSCALE(或0):以灰度模式加载

cv2.IMREAD_UNCHAGED(或-1):加载图像,包括alpha通道。

#加载彩色灰度图像

img = cv2.imread('messi5.jpg'0)



cv2.imshow(“窗口名称”,展示对象)

cv2.waitKey(时长):该函数等待任何键盘事件指定的毫秒。如果您在这段时间内按下任何键,程序将继续运行。如为0,无限等待。

cv2.destroyAllWindows():破坏我们创建的窗口

cv2.imshow('image',img)

cv2.waitKey(0) 

cv2.destroyAllWindows()

cv2.imwrite(“文件名”,保存对象)

cv2.imwrite('messigray.png',img)

视频读取、写入

cv2.VideoCapture("文件名"或摄像头编号)

cap = cv.VideoCapture(0)

cap = cv.VideoCapture('vtest.avi')

cv2.VideoWriter(“文件路径”,fourcc编码器,视频保存帧率,画面尺寸[,画面模式])

fourcc 本身是一个 32 位的无符号数值,用 4 个字母表示采用的编码器。 常用的有 “DIVX"、”MJPG"、“XVID”(推荐使用)、“X264"。

fourcc = cv.VideoWriter_fourcc(*'XVID') 

out = cv.VideoWriter('output.avi', fourcc, 20.0, (640,  480))

完成工作后必须释放

cap.release() 

out.release()

绘图功能

cv2.line(绘图对象,(开始坐标),(结束坐标),(bgr),绘图宽度)

cv2.circle(绘图对象,(圆心坐标),半径,(bgr),绘图宽度(整数表示宽度,-1表示被填充))

cv2.rectangle(绘图对象,(左上角坐标),(右下角坐标),(bgr),绘图宽度)

cv2.ellipse(绘图对象,(椭圆中心坐标),(半长轴,半短轴),水平方向逆时针旋转的角度,长轴顺时针方向开始显示的角度,长轴顺时针结束显示的角度,(bgr),绘图宽度)

cv2.putText(绘图对象,“文本内容”,(文本开始的左下角坐标),字体,字体比例(bgr),绘图宽度,线条类型)

鼠标做画笔、轨迹做调色板

cv2.setMouseCallback(‘窗口’,回调函数)

cv2.namedWindows("窗口名“) 产生窗口

回调函数自行定义

events = [i **for** i **in** dir(cv) **if** 'EVENT' **in** i]

*# 鼠标回调函数* 

def draw_circle(event,x,y,flags,param):    

if event == cv.EVENT_LBUTTONDBLCLK: 

​       cv.circle(img,(x,y),100,(255,0,0),-1)

 # 创建一个黑色的图像,一个窗口,并绑定到窗口的功能

img = np.zeros((512,512,3), np.uint8)

cv2.namedWindow('image') 

cv2.setMouseCallback('image',draw_circle)

cv2.createTrackbarPos(“轨迹栏名”,“附加窗口名”,0,最大值,回调函数(nothing表示什么都不做))

cv2.getTrackbarPos(“轨迹栏名”,“附加窗口名”)

cv2.createTrackbar('R','image',0,255,nothing)

cv2.createTrackbar('G','image',0,255,nothing)

 cv2.createTrackbar('B','image',0,255,nothing)

 r = cv2.getTrackbarPos('R','image')

 g = cv2.getTrackbarPos('G','image')

b = cv2.getTrackbarPos('B','image')

图像基础操作

访问属性(行、列、通道数、数据类型、像素数)

img.shape

img.size

img.dtype

截取部分

img[x1:y1,x2:y2]

拆分和合并图像通道

b,g,r=cv2.split(img)

cv2.merge((b,g,r))

设置边框

cv2.copyMakeBorder(处理对象,上,下,左,右,边框标志)

边框标志:

  • cv.BORDER_CONSTANT - 添加恒定的彩色边框。用此多一个边框颜色参数

  • cv.BORDER_REFLECT - 边框将是边框元素的镜像,如下所示: fedcba | abcdefgh | hgfedcb

  • cv.BORDER_REFLECT_101cv.BORDER_DEFAULT与上述相同,但略有变化,例如: gfedcb | abcdefgh | gfedcba

  • cv.BORDER_REPLICATE最后一个元素被复制,像这样: aaaaaa | abcdefgh | hhhhhhh

  • cv.BORDER_WRAP它看起来像这样: cdefgh | abcdefgh | abcdefg

    改变空间颜色

    cvtColor(输入图片,转换类型)

    BGR<—>灰色 cv2.COLOR_BGR2GRAY

    BGR<—>HSV cv2.COLOR_BGR2HSV

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ibabysit

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值