浅尝OpenCV-python

浅尝OpenCV-Python



1.显示图片

1.1相关函数说明

函数说明
cv2.imread(filename)filename为对应读取的图片名称
cv2.imshow(winname,matrix)winname为展示的名称,matrix为图片的矩阵点
cv2.waitKey(time)当参数小于等于0或者为空,表示一直等待按键。当参数大于0则表示显示对应的时间,单位为毫秒

1.2 cv2.imread()支持的读取模式

ModeDescription
cv2.IMREAD_COLOR默认选项,彩色三通道BGR图像
cv2.IMREAD_GRAYSCALE8位灰度图像
cv2.IMREAD_ANYCOLOR具体取决于文件的元文件,上述两种都可
cv2.IMREAD_UNCHANGED读取所有通道图像数据,包括第四通道的透明度通道
cv2.IMREAD_ANYDEPTH加载原始深度的灰度图像,提供16位的灰度图像
`cv2.IMREAD_ANYDEPTHcv2.IMREAD_COLOR`
cv2.IMREAD_REDUCED_GRAYSCALE_2加载原始分辨率1/2的灰度图像
cv2.IMREAD_REDUCED_COLOR_2加载每个通道BGR图像,分辨率为1/2
randomByteArray = bytearray(os.urandom(120000))#图像数据默认为8位,而1byte位8位
# flatNumpyArray = np.array(randomByteArray)

#也可通过numpy生成随机numpy数组,255也即8位数表达最大数字,150000为像素点
flatNumpyArray=np.random.randint(0,256,150000)

grayImage=flatNumpyArray.reshape(500,300)
# 将150000像素点转为500*300像素的灰度图片
cv2.imwrite('RandomGray.png', grayImage)

# 将150000像素点转为500*100*3像素的彩色三通道图片
bgrImage = flatNumpyArray.reshape(500, 100, 3)
cv2.imwrite('RandomColor.png', bgrImage)

image-20220428160450991

image-20220428160503960

img = cv2.imread("1.jpg")
cv2.imshow('Output', img)
cv2.waitKey()
image-20220410220341479

2. 缩放图片

Resize()

函数说明
cv2.resize(src,dsize)src为读取的图片矩阵,dsize为缩放像素
img = cv2.resize(img, (300, 300)) 
cv2.imshow('Size',img)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aJ54cJYg-1649602580544)(https://gitee.com/Miracle_Fan/figure-beds/raw/master/img/image-20220410220451188.png)]

3. 高斯模糊图片

GaussianBlur()

cv2.GaussianBlur(SRC,ksize,sigmaX)

第三个参数为高斯核标准误差,数值越大,模糊程度越高。

blur = cv2.GaussianBlur(img, (15 , 15),10)
cv2.imshow('Blur', blur)

4.灰度图

cvtcolor()

将图像从一个颜色空间转换到另一个颜色空间的转换;cv2.COLOR_BGR2GRAY为灰度空间

gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
cv2.imshow('Gray', gray)

5.Canny边缘检测

cv2.Canny()

参数img,threshold1,threshold2. image 为 8 位输入图像。threshold1 表示处理过程中的第一个阈值。 threshold2 表示处理过程中的第二个阈值

canny = cv2.Canny(img, 125, 175)
cv2.imshow('Canny', canny)

6.读取视频

函数说明
cv2.VideoCapture()同imread
cap.read()返回第一个参数为bool值,判断读取帧数是否正常;第二个参数为所读取帧的图片
    cap = cv2.VideoCapture("1.mp4")
    while True:
        success, img = cap.read()
        cv2.imshow("Video", img)
        if cv2.waitKey(1)  & 0xFF == ord('q'):
            break

image-20220410222756518

cap = cv2.VideoCapture(0)
while True:
    success, img = cap.read()
    img = cv2.Canny(img, 125, 175)
    cv2.imshow("Video", img)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break
cap.release()
cv2.destroyAllWindows()

CannyVideo

7.绘制UI图形

blank = np.zeros((500, 500, 3), dtype='uint8')
cv2.imshow('Blank', blank)
# # 绘制小方块
blank[200:300, 300:400] = (255, 0, 0)  # BGR
cv2.imshow('Green', blank)
# 绘制矩形
cv2.rectangle(blank, (0, 0), (250, 250), (0, 255, 0), thickness=2)
cv2.imshow('Rectangle', blank)
# 绘制圆形
cv2.circle(blank, (blank.shape[1] // 2, blank.shape[0] // 2), 40, (0, 0, 255), thickness=1)
cv2.imshow('Circle', blank)
# 绘制直线
cv2.line(blank, (0, 0), (blank.shape[1] // 2, blank.shape[0] // 2), (255, 255, 255), thickness=1)
cv2.imshow('Line', blank)
# 输出文本
cv2.putText(blank, 'Hello World', (255, 255), cv2.FONT_HERSHEY_TRIPLEX, 1.0, (0, 255, 0), 2)
cv2.imshow('Text', blank)
cv2.waitKey(0)

image-20220410224415946

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Miracle Fan

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

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

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

打赏作者

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

抵扣说明:

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

余额充值