Python · 计算机视觉 探险之旅

本文介绍了计算机视觉的基础概念,包括Marr的视觉计算理论和图像处理的三个阶段。讲解了图像预处理,如模糊化、锐化、边缘检测,特别讨论了Canny边缘检测和Harris角点检测。还涉及了基本的几何变换、图像采集、测距方法及图像标定。后续章节将探讨支持向量机、目标检测和卷积神经网络。
摘要由CSDN通过智能技术生成

第一章节   概念基础        

一、入门

        1. 计算机视觉 · 定义
                按照一定的算法,让计算机获得类似于人类视觉的能力;
                不仅仅“视”(看到),更重要的是实现“觉”(信息分析)

        2. Marr 的视觉计算理论
                计算机视觉工程的先驱者

        3. 三个阶段
                A. , 
将输入的原始图像进行处理,抽取图像中诸如角点、边缘、纹理、线条、边界等基本特征,这些特征的集合称为基元图(primitive sketch);
                B.  在以观测者为中心的坐标系中,由输入图像和基元图恢复场景可见部分的深度、法线方向、轮廓等,这些信息的包含了深度信息,但不是真正的物体三维表示,因此,称为二维半图(2.5 dimensional sketch)
                C. 在以物体为中心的坐标系中,由输入图像、基元图、二维半图来恢复、表示和识别三维物体(综合运用,进入三维时代

二、图像基础

        1. 模拟图像
                由实际图像“拍摄”出来的【像素图是对实际图像的模拟
                此过程也可称为离散化

        2. 计算机图像
                原点方向或产生变化

        3. 三原色
                
红绿蓝RBG(Matplotlib库导入顺序,而OpenCV库恰好反过来)

        4. 像素邻域

        5. 像素距离
                

        6. 部署Python环境,配置CV2和Matplotliv库
《关于我摸鱼一天后搞定PyCharm这件事》Python环境配置_影月丶暮风的博客-CSDN博客

        7. 常见图像保存方式
                float64  uint8   是两种常见的方式,二者之间可以相互转化
                float范围在0~1   uint在0~255

OpenCV 图像导入测试

"""
显示图像(OpenCV)
"""
import cv2

# CV2是 BGR读入,显示也是BGR
# matplotlib是RBG显示,使用要记得反相
t1 = cv2.imread("HF.jpg", 1)  # 读入图片(按照BGR格式)
# 处理形式写0是【灰度读取】,不写或写1 为【彩色读取】(图像地址不可是中文)
# cv2.namedWindow("Image_Test")  # 创建窗口
cv2.imshow("Image_Test", t1)  # 显示图像

if cv2.waitKey() == 27:  # 等待摁下 esc键后销毁窗口
    cv2.destroyAllWindows()

Matplotlab  与 CV2 的互动

"""
显示图像(matplotlib)
"""
# 导入模块
import cv2
import matplotlib.pyplot as plt

# 读取图像
T1 = cv2.imread("HF.jpg")

# 直接使用 Matplotlib 显示图像 (显示异常)  cv导入为BGR顺序
plt.imshow(T1)  # matplotlib是 RGB顺序
plt.show()

# 将颜色通道从 BGR 转换为 RGB
# T1 = T1[:, :, ::-1] # 方法一
T1 = cv2.cvtColor(T1, cv2.COLOR_BGR2RGB)  # 方法二

# 使用 Matplotlib 显示图像
plt.imshow(T1)
plt.show()

        8.  关于滤波核:越大越能去除噪点,但是会牺牲清晰度;越小越清晰,但是无法消除噪点
        所以太大太小都不是好的,应该适中;另外,滤波核喜欢取得奇数个数的像素点.
 

第二章节   图像边缘与角点检测

一、图像文件结构
        1.  位图
                        
像素构成,分为8 16 24bit三种位型,分别为256色 65536色 2^24色
                来表示一个像素点,越高位数能表示的色彩也就越丰富,相应地会更占内存

                A. BMP文件由文件头、位图信息头、颜色信息和图像数据四部分组成
                        文件头主要包含文件的大小、文件类型、图像数据偏离文件头的长度等信息;
                        位图信息头包含图象的尺寸信息、图像用几个比特数值来表示一个像素、图像是否
                                压缩、图像所用的颜色数等信息
                        颜色信息包含图像所用到的颜色表,显示图像时需用到这个颜色表来生成调色板,
                                但如果图像为真彩色呢?
                        图像数据表示图像的相应的像素值。

                B.   图像的像素值在文件中的存放顺序为从左到右,从下到上
                C.   文件存储图像的每一行像素值时,如果存储该行像素值所占的字节数为4 的倍数
                                则正常存储,否则,需要在后端补0 ,凑足4的倍数

                
D.  JPGE和GIF 都是 有损压缩
                                jpge常见三种:标准型,渐进型,JPGE2000
                     (从上到下加载显示,从模糊到清晰显示,更好的压缩避免异常显示)

这是我老婆!

                                                                                                                                                           
        2.  图像预处理
                A.  模糊化
                用于消除噪声(白点);   常见三种方法:均值滤波、中值滤波、高斯滤波
                本质上都是取得一定区域的像素块,合成一个新的像素块来代替一块
           

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

影月丶暮风

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

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

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

打赏作者

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

抵扣说明:

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

余额充值