码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 9月14日计算机视觉基础学习笔记——基本图像处理


    文章目录

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


    前言

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

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

    一、计算机视觉的由来

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

    二、计算机如何看到图像

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

    二值图像:

    1

    灰度图:

    2

    RGB:

    3

    图像采集过程:

    4

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

    实际上是对矩阵的处理。

    1、直接从 camera 读取

    cap = cv.VideoCapture(0)
    
    • 1

    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)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    5
    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)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    4
    5

    四、图像处理

    1、颜色空间转换

    (1)、RGB to HSV

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

    6

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

    7

    2、图像的平移

    8

    • 平移的原理: [ 1 0 t x 0 1 t y ] [ x y 1 ] = [ x + t x y + t y ]
      [10tx01ty]" role="presentation" style="position: relative;">[1001txty][10tx01ty]
      [xy1]" role="presentation" style="position: relative;">⎡⎣⎢xy1⎤⎦⎥[xy1]
      =
      [x+txy+ty]" role="presentation" style="position: relative;">[x+txy+ty][x+txy+ty]
      [10​01​tx​ty​​]⎣ ⎡​xy1​⎦ ⎤​=[x+tx​y+ty​​]

    3、图像的模糊与锐化

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

    9

    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))
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    10


  • 相关阅读:
    原生安卓打包Vue 项目成apk安装包
    【会议征稿,CPS出版】第四届管理科学和软件工程国际学术会议(ICMSSE 2024,7月19-21)
    【程序人生】4年创作纪念日,不忘初心,继续前行
    589. N 叉树的前序遍历——迭代法实现
    少年,该升级 Vue3 了!
    [笔记]RestController统一返回结果格式
    设计模式-单一职责原则
    第十四届蓝桥杯模拟赛(第二场)题解·2022年·C/C++
    《痞子衡嵌入式半月刊》 第 103 期
    抖音播映量破500的原因找到了,不是内容不好,而是这5个功能
  • 原文地址:https://blog.csdn.net/Ashen_0nee/article/details/126846786
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号