9月14日计算机视觉基础学习笔记——基本图像处理

文章目录

  • 前言
  • 一、计算机视觉的由来
  • 二、计算机如何看到图像
  • 三、计算机处理图像的方式、方法
    • 1、直接从 camera 读取
    • 2、从文件读取
    • 3、生成矩阵显示
  • 四、图像处理
    • 1、颜色空间转换
      • (1)、RGB to HSV
    • 2、图像的平移
    • 3、图像的模糊与锐化
    • 4、加水印


前言

本文为9月14日计算机视觉基础学习笔记——基本图像处理,分为四个章节:

  • 计算机视觉的由来;
  • 计算机如何看到图像;
  • 计算机处理图像的方式、方法;
  • 图像处理。

一、计算机视觉的由来

  • 视觉能力: 会看、会展示,但不会处理、更不会思考、会玩。
  • 数码照相机: 会看、会玩、会更多的处理;
  • Auto-PS
    1. 找到人脸位置——人脸检测;
    2. 定位五官——关键点检测;
    3. 磨皮:blur;瘦脸、大眼:仿射变换;口红、白牙:色彩变换。

二、计算机如何看到图像

  • 感光器件;
  • 显像管与显示屏;

二值图像:

9月14日计算机视觉基础学习笔记——基本图像处理_第1张图片

灰度图:

9月14日计算机视觉基础学习笔记——基本图像处理_第2张图片

RGB:

9月14日计算机视觉基础学习笔记——基本图像处理_第3张图片

图像采集过程:

9月14日计算机视觉基础学习笔记——基本图像处理_第4张图片

三、计算机处理图像的方式、方法

实际上是对矩阵的处理。

1、直接从 camera 读取

cap = cv.VideoCapture(0)

2、从文件读取

img = cv.imread("lena.jpg")
img_RGB = cv.cvtColor(img, cv.COLOR_BGR2RGB)

print(img.shape)
>>> (722, 726, 3)

# Range of Interest
roi = img_RGB[100:200, 300:400]

plt.imshow(img_RGB)
plt.imshow(roi)

9月14日计算机视觉基础学习笔记——基本图像处理_第5张图片
9月14日计算机视觉基础学习笔记——基本图像处理_第6张图片

3、生成矩阵显示

import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt

img0 = np.array([[0, 0, 1], [0, 1, 0], [1, 0, 0]])

print(img0)
print(img0.shape)
print("img0 size = {}, {}".format(img0.shape[0], img0.shape[1]))

>>> [[0 0 1]
     [0 1 0]
     [1 0 0]]
>>> (3, 3)
>>> img0 size = 3, 3

# 灰度图片
plt.imshow(img0, cmap="gray")

# 彩色图片
plt.imshow(img0)

9月14日计算机视觉基础学习笔记——基本图像处理_第7张图片
9月14日计算机视觉基础学习笔记——基本图像处理_第8张图片

四、图像处理

1、颜色空间转换

(1)、RGB to HSV

  • H: 色调;
  • S: 饱和度;
  • V: 亮度。
img_hsv = cv.cvtColor(img, cv.COLOR_BGR2HSV)
plt.imshow(img_hsv)

9月14日计算机视觉基础学习笔记——基本图像处理_第9张图片

# 肤色检测
# 二值化:非0即最大值。
img_gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
ret, thresh = cv.threshold(img_gray, 128, 200, cv.THRESH_BINARY)
plt.imshow(thresh)

9月14日计算机视觉基础学习笔记——基本图像处理_第10张图片

2、图像的平移

9月14日计算机视觉基础学习笔记——基本图像处理_第11张图片

  • 平移的原理 [ 1 0 t x 0 1 t y ] [ x y 1 ] = [ x + t x y + t y ] \begin{bmatrix} 1 & 0 & t_x\\ 0 & 1 & t_y \end{bmatrix} \begin{bmatrix} x \\ y \\ 1 \end{bmatrix} = \begin{bmatrix} x+t_x \\ y+t_y \end{bmatrix} [1001txty] xy1 =[x+txy+ty]

3、图像的模糊与锐化

img_blur = cv.GaussianBlur(img_RGB, (11, 11), 1, 0) # 高斯模糊
plt.imshow(img_blur)

9月14日计算机视觉基础学习笔记——基本图像处理_第12张图片

4、加水印

wm = cv.imread("UoB.png")
wm = cv.resize(wm, (300, 300))
wm = cv.cvtColor(wm, cv.COLOR_BGR2RGB)
wm = wm - 255
img1 = cv.resize(img_RGB, (300, 300))
print(wm.shape)
>>> (300, 300, 3)

plt.imshow(cv.add(wm, img1))
plt.imshow(cv.addWeighted(wm, 0.9, img1, 0.5, 0))

9月14日计算机视觉基础学习笔记——基本图像处理_第13张图片


你可能感兴趣的:(计算机视觉,图像处理,学习)