【Opencv 系列】第1章 图像基础

通过本套课程,可以学到:
1.opencv的基本操作
2.两个案例,目标追踪&人脸识别
对重点内容,我会提示,包括我再准备这套课程过程中遇到的坑点!
最后代码我会放到git上,章节顺序一致:https://github.com/justinge/opencv_tutorial.git

系列文章目录

第1章 Opencv 图像基础 和 argparse模块
第2章 Opencv 读取、保存图片和视频
第3章 Opencv 图像的8种变换
第4章 Opencv 直方图
第5章 Opencv 画出基本图形以及显示文本
第6章 Opencv 人脸检测(Haar/dlib) & 关键点检测
第7章 Opencv 目标跟踪
第8章 Opencv 人脸识别



1 知识点

1.1 基本概念

像素:计算机屏幕上所能显示的最小单位。用来表示图像的单位。
RGB,R : Red,G : Green,B : Blue,范围0~255。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.2. 坐标系

这个logo像素是:18 X 20 = 360 pixels
坐标系的原点(0,0)在左上角,每一个点的坐标是:
(height, width, channel)。
在这里插入图片描述

1.3 基本操作

基于彩色图片

  1. 读取图片: cv2.imread()
  2. 读取图片的形状: img.shape. 返回一个(rows,heights,channels) 注意和pytorch不同
  3. 获取图片大小: img.size, 返回 rowsheightschannels.
  4. 显示图片:cv2.imshow()
  5. 等待:cv2.waitKey(0)
  6. 关闭:cv2.destroyAllWindows()

基于灰度图片

  1. 读取图片: cv2.imread(img,cv2.IMREAD_GRAYSCALE)
  2. 获取图片形状:img.shape,返回一个(rows,heights), 注意这里没有channels了 因为就一个通道了.

1.4 BGR顺序

opencv的 channel顺序是BGR, pillow模块和pytorch都是RGB的,这个需要注意,另外还有channels=4的一种格式的图片.png的,读取的时候需要转成三维的,反正吧,不是3channel,就转成3channel是个好习惯. 一般框架都会有这一步.
在这里插入图片描述
一个像素点也是有三个值的.

2. 实际应用

2.1 对待彩色图

在这里插入图片描述

import cv2
img = cv2.imread("../images/children.jpg")
# 显示图片
cv2.imshow('image1',img)
# 把一块写成红色
img[6:40,6:40] = (0,0,255)
cv2.imshow('image2',img)
# 等待
cv2.waitKey(0)
# 关闭所有窗口
cv2.destroyAllWindows()

给logo的颜色换个顺序
在这里插入图片描述

2.2 用plt的方式显示图片

import matplotlib.pyplot as plt
plt.subplot(121)
plt.imshow(img_logo)
plt.subplot(122)
plt.imshow(img_logo_new)
plt.show()

在这里插入图片描述

3. argparse模块

看名字 argparse = arg+parse 也就是命令行参数解析的意思
argparse模块使编写用户友好的命令行接口变得容易,程序定义了它需要的参数,而argparse将找出如何从sys.argv中解析这些参数,argparse模块还会自动生成帮助和使用消息,并在用户给程序提供无效参数时发出错误信息。

3.1 使用方式

import argparse		# 导入库
parser = argparse.ArgumentParser()	# 获取所有参数
parser.add_argument(-n1”,--number one”, help=“第一个参数”, type=int) # 添加参数1
parser.add_argument(-n2”,--number two”, help=“第二个参数”, type=int) # 添加参数2
args = parser.parse_args()	# 解析所有参数

(1)官网教程1:
https://docs.python.org/3/howto/argparse.html

(2)官网教程2:https://docs.python.org/3/library/argparse.html#module-argparse

总结

## 两种方式来挑整通道顺序
img_logo_new = cv2.cvtColor(img_logo, cv2.COLOR_BGR2RGB) # BGR -> RGB

## 手动方式转成RGB
b,g,r = cv2.split(img_logo)
img_new = cv2.merge([r, g, b])

git地址:https://github.com/justinge/opencv_tutorial.git

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值