opencv-python 小白笔记(4)

(一)创建图像( np.zeros)

这里,你可以是理解为在创建画板(画布)
因为图像本身它就是矩阵,所以我们用numpy创建一个全黑的图像(画板)
上代码:

import cv2
import numpy as np

img = np.zeros((501,501,3),np.uint8)
#np.zeros()有两个参数,一个是创建的图片矩阵大小,另一个是数据类型,512,512是像素(第一个512像素高,第二个是512像素宽)3BGR三种颜色
cv2.imshow("Image",img)
cv2.waitKey(0)

在这里插入图片描述
如果你不喜欢全黑的,那我们还可以该(改个全白的),这样方便对比

import cv2
import numpy as np

img = np.zeros((501,501,3),np.uint8)
#np.zeros()有两个参数,一个是创建的图片矩阵大小,另一个是数据类型,512,512是像素(第一个512像素高,第二个是512像素宽)3BGR三种颜色

img[:]= 255,255,255
cv2.imshow("Image",img)
cv2.waitKey(0)

在这里插入图片描述
其中这个函数img[y1:y2,x1:x2]= 255,255,255 ,它表示改变图像中y1:y2,x1:x2的像素点颜色,后面的255,255,255为需要改变成的颜色,如果只有img[ : ],则表示改变整幅图像的所有像素点的颜色

import cv2
import numpy as np

img = np.zeros((501,501,3),np.uint8)
#np.zeros()有两个参数,一个是创建的图片矩阵大小,另一个是数据类型,512,512是像素(第一个512像素高,第二个是512像素宽)3BGR三种颜色,如果没有这个3,则创建的是一幅灰度图

img[200:300,200:300]= 255,0,255#粉红色
cv2.imshow("Image",img)
cv2.waitKey(0)

在这里插入图片描述

(二)画线(cv2.line)

这里我们需要用到cv2.line(img,(0,0),(260,260),(255,0,0),5)
img表示为原图
(0,0) 表示为线的起始坐标
(260,260) 表示为线的终止坐标
(255,0,0) 表示显得颜色
5 表示线的厚度
当然这函数还可以设置线条的类型这里就不举例了

上代码

import cv2
import numpy as np

img = np.zeros((501,501,3),np.uint8)
#np.zeros()有两个参数,一个是创建的图片矩阵大小,另一个是数据类型,512,512是像素(第一个512像素高,第二个是512像素宽)3BGR三种颜色
img[:]= 255,255,255

cv2.line(img,(0,0),(251,251),(0,255,0),3)#这里我们选择原谅色

cv2.imshow("Image",img)
cv2.waitKey(0)

在这里插入图片描述

(三)画矩形(cv2.rectangle)

这里我们需要cv2.rectangle()这个函数,它的参数与画线的函数相似
cv2.rectangle(image, 左上角坐标, 右下角坐标, color, 线条粗度),但它还有一个图像填充功能,你可以将线条厚度改为cv2.FILLED,这样它就会填充整个矩形的内部

import cv2
import numpy as np

img = np.zeros((501,501,3),np.uint8)
#np.zeros()有两个参数,一个是创建的图片矩阵大小,另一个是数据类型,512,512是像素(第一个512像素高,第二个是512像素宽)3BGR三种颜色
img[:]= 255,255,255

cv2.rectangle(img,(0,0),(251,251),(0,255,0),3)#这里我们还是选择原谅色

cv2.imshow("Image",img)
cv2.waitKey(0)

在这里插入图片描述
我们试一下填充

import cv2
import numpy as np

img = np.zeros((501,501,3),np.uint8)
#np.zeros()有两个参数,一个是创建的图片矩阵大小,另一个是数据类型,512,512是像素(第一个512像素高,第二个是512像素宽)3BGR三种颜色
img[:]= 255,255,255

cv2.rectangle(img,(0,0),(251,251),(0,255,0),cv2.FILLED)#这里我们还是选择原谅色

cv2.imshow("Image",img)
cv2.waitKey(0)

在这里插入图片描述

(四)画圆(cv2.circle)

这里我们需要使用cv2.circle()函数
cv2.circle(img, center, radius, color[, thickness[, lineType[, shift]]])
img:输入的图片data
center:圆心位置
radius:圆的半径
color:圆的颜色
thickness:圆形轮廓的粗细(如果为正)。负厚度表示要绘制实心圆。
lineType: 圆边界的类型。
shift:中心坐标和半径值中的小数位数。

当然这里我们也可以将厚度改为cv2.FILLED来填充图片,其实我们还可以将厚度改为-1来填充图片

import cv2
import numpy as np

img = np.zeros((501,501,3),np.uint8)
#np.zeros()有两个参数,一个是创建的图片矩阵大小,另一个是数据类型,512,512是像素(第一个512像素高,第二个是512像素宽)3BGR三种颜色
img[:]= 255,255,255

cv2.circle(img,(251,251),51,(0,255,0),3)#这里我们还是选择原谅色

cv2.imshow("Image",img)
cv2.waitKey(0)

在这里插入图片描述

(五)放置文本(cv2.putText)

这里需要使用到cv2.putText()函数
各参数依次是:图片,添加的文字,左上角坐标,字体类型,字体大小,颜色,字体粗细

import cv2
import numpy as np

img = np.zeros((501,501,3),np.uint8)
#np.zeros()有两个参数,一个是创建的图片矩阵大小,另一个是数据类型,512,512是像素(第一个512像素高,第二个是512像素宽)3BGR三种颜色
img[:]= 255,255,255

cv2.putText(img," WDNMD  ",(251,200),cv2.FONT_HERSHEY_COMPLEX,1,(0,150,0),3)#依旧还是选择原谅色,这里的WDNMD,纯属搞笑

cv2.imshow("Image",img)
cv2.waitKey(0)

在这里插入图片描述

(六)备注

其实我们还可以画椭圆,多边形等,由于时间现在我就不一一列举,读者可自行百度,不过我会放出函数接口

画椭圆:cv2.ellipse()
多边形:cv2.polylines()

(七)结语

学习opencv有很多的方法,我的建议是你可以加一些群,可以充分利用B站,CSDN,和百度。

在我的博客中,我不会讲解opencv的算法实现(当然我也不太会),我只会讲解一些函数的调用,不理解就多改一些参数,多尝试尝试,慢慢你就理解来。相信你总有一天可以说opencv不过“Ctrl+C,Crtl+V”

如果有什么错误的地方,还请大家批评指正,最后,希望小伙伴们都能有所收获。![在这里插入图片描述](https://img-blog.csdnimg.cn/20200522161506906.gif在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值