2019-08-22 15:12:20 fengshengwei3 阅读数 191

数组图像处理系列教程

本系列教程主要介绍数字图像处理技术,与之相关的有 【AI】【机器视觉】 ,【计算机视觉】,那么它们之间的关系如何呢?

目录

课程介绍

1 关系图

2  区别与联系

3  课程内容

4  课程特点



1 关系图

2  区别与联系

 

 

总结:无论是机器视觉也好,计算机视觉也罢,处理的核心都是图像,数字图像处理技术是以图像为基础,对图像做各种处理(滤波、 变换、分割)等处理的技术

 

3  课程内容

数字图像处理基础

空间域图像处理

频率域图像处理

形态学图像处理

图像特征检测

图像分割

彩色图像的各种格式转换

4  课程特点

尽量用最通俗的语言讲解,会以理论结合实践的方法来展开系列教程。

                                                                                

 

 

2016-12-07 21:01:24 u013698770 阅读数 1665

图像处理

  图像处理是指对获取的二维图像进行基本的处理。比如,滤波、边缘、角点提取等。通过对图像处理可以实现降噪、特征提取等。一般来说,图像处理被用作图像数据的预处理,其主要包括滤除噪声数据及增强图像中的关键数据。

图像分类

  图像分类也称之为图像识别。图像分类是通过海量的图像数据来训练分类器,比如深度学习网络,并通过分类器来进行图像的分类。一般来说,图像分类可用于人脸识别,指纹识别等需要图像和人相对应的场景。

计算机视觉

  计算机视觉,其更准确的应该称之为机器视觉,或者机器人视觉,因为其应用的算法主要是在机器人视觉上。计算机视觉主要是通过获取得到的2维图像来还原真实的3维场景。其最基本的应用就是双目测距。

2016-09-02 10:13:43 u012521552 阅读数 3756

计算机视觉和图像处理框架


一、概述

图像处理即传感器将图像信号转换为数字信号,再利用计算机对其进行加工处理的过程。其涉及到的方法主要有图像变换、图像编码、图像去噪、图像增强、图像恢复、图像分割、特征提取、图像识别等。
计算机视觉是一门研究如何让机器(计算机)像人一样看并理解周围世界的学科,其基本理论和研究方法,旨在从图像或者其他数据中获得相关信息。
从直观的角度看,我们可以说计算机视觉处理视频,图像处理处理图像,而视频由图像构成,当然这个说法只能用作理解,不够严谨。二者更科学的区别是计算机视觉重点研究映射到单幅图像或者多幅图像上的三维场景,如三维重建就是计算机视觉研究的内容;图像处理主要研究一个二维的数字图像,主要针对的是像素级的操作,例如提高对比度、边缘提取、几何变换等。
计算机视觉和图像处理有很大的交叉,之前我也会把机器学习和模式识别也加入到交叉部分,现在我倒觉得,把这两门学科总结为像数学和英语那样为基础服务更合适。

二、计算机视觉基本流程

一个信息处理系统,总对应着一个或多个Input和Output,计算机视觉系统也不例外,输入为从三维世界中采集到的数据,输出为系统对信息的理解。无外乎就以下几个部分:
1、数据采集(输入)
2、预处理: 去噪、增强
3、特征提取;
4、检测/跟踪/分割;
5、高级操作(分类、识别等)(输出)
关于图像检测与识别的区分:
目标检测:首先我们已经知道目标是什么,然后去图像中定位它的位置。(人脸检测、行人检测、车辆检测等)
图像识别:简单的说,是图像再认,从成千上万张图像中找到认识的那一张,犹如我们在大街上遇到一个一个人,然后就会去搜索我们见过的所有人,‘哦!我见过他’,如果再加上‘哦!我见他趟在天安门的水晶棺里!’,那么就等于识别系统识别到了一个图像的id和路径,这就是图像识别的过程,(对于一个从来没有出现过的目标,计算机是无法进行再认的,人也不行)。其处理过程主要包括:图像输入、预处理、特征提取、特征分类、匹配。
计算机视觉中的识别:是计算机视觉系统处理的高级过程,从再认的角度上讲,它们是一样的,然而出发点和‘识别’过程是不同的两个方面,计算机视觉中的识别重点在某一个领域内,比如行人行为识别(拥抱、指路、打架、偷车等),那么这个系统我们研究的就是人,车辆行为识别(是否酒驾、是否超速等),那就是一个交通监控系统,我们需要定义一个行为:什么是拥抱(偷车)或者什么是酒驾;而图像识别旨在从某一个库中去‘匹配’一个相同或者相似的图像(当然匹配的是特征)。

三、基本图像处理与分析

基于计算机视觉系统的整条主线,总结一下现有的一些理论和方法。
图像采集:(摄像机标定和矫正)
预处理:(去噪、增强、金字塔等)
特征提取:(BRIEF、颜色和直方图特征、FAST特征、Harris特征、HOG、SIFT、SURF等)
检测:(背景建模、特征+分类器(SVM、Adaboost、Random forest)、显著性监测等)
跟踪:(Mean-shift、TLD、粒子滤波、卡尔曼)
高级操作:(BOW)
上述主要介绍了整个系统中常用到的一些方法和理论,当然计算机视觉和图像处理的内容远不止这些,下面列一些主要的领域,然后再补充一点模式识别的内容:
人脸检测、人脸识别、目标检测和跟踪、OCR、阴影检测、场景理解、SLAM、视频监控等。

四、为我所用

最后主要总结一下能够为计算机视觉使用的一些理论和方法。
机器学习:用摄像机模拟人眼,cpu模拟人脑,对于‘白痴’cpu,告诉它学习的方法也就显得自然了。
模式识别:理论极强的一门学科,和ML、CV相辅相成,基于神经网络的DL大红大紫
Boosting、clustering、CS(Compressive Sensing)、DT(Decision Trees)、DP(Dynamical Programimg)、EM、GM(Graphical Model)、HMM、ICA、PCA、RF(random forest)、RANSAC、SVD(Singular Value Decomposition)、稀疏表示、SVM、小波、NN
英语:谁让我们落后于人家呢,师夷长技以制夷
数学:一切美好的基石,数学分析、概率、统计、矩阵、最优化等
计算机基础理论和方法:可能像组成原理、体系结构、操作系统、编译原理对算法研究帮助不大,不过数据结构和基本算法的作用却是相当大的,如果是做工程,前面的基础知识就显得很重要了。
产品:为什么提到产品,因为工业不等于研究,要想自己喜欢的学科真正能够服务于大众,理论和实际必须要结合起来。

2017-09-12 10:32:50 louishao 阅读数 698

图像处理与机器视觉(1)

本人最近研究方向为图像处理与机器视觉,这个包括:图像的处理、图像的特征提取、图像语义分析与理解以及图像的分类与识别。

由于本科并不是读图像的,因此,只能快速地理解并掌握图像相关的概念,并进行适当的编程实现,加深印象!


1 图像的点运算

点运算是指:对图像中的每个像素依次进行同样的灰度变换运算。

1.1 灰度直方图

灰度直方图描述了一幅图像的灰度级统计信息,主要应用在于图像分割和图像灰度变换处理过程中。

从图形上来说,灰度直方图是一个二维图,横坐标是图像中各个像素点的灰度级别,纵坐标是各个灰度级别的像素在图像中出现的次数或频率。

1.2 灰度的线性变换

线性灰度变换函数f(x)是一个一维线性函数:

其中,参数fa为线性函数的斜率,fb是心啊行函数在y轴的截距,Da是输入图像的灰度,Db表示图像的灰度。其中:

当fa>1时,输出图像的对比度将增大;当fa<1时,输出图像的对比度将减小。

1.3 灰度对数变换

这是一种非线性变换。对数变换的一般表达式:

其中,c为尺度比例常数,s为源灰度值,t为变换后的目标灰度值。

这种变换可以增强一幅图像中较暗部分的细节,从而可以用来拓展被压缩的高值图像中的较暗像素,因此对数变换被广泛地应用于频谱图像的显示中,一个典型的应用就是傅里叶频谱。

1.4 gama变换

gama变换,一般表达式:

其中,x与y的取值范围均为[0,1],也就是说使用gama变换时,图像像素需要归一化。esp是补偿系数,r则是gama系数。

与对数变换不同,gama变换可以根据r的不同取值选择性地增强低灰度区域的对比或是高灰度区域的对比度。

其中:

r>1时,图像的高亮度区域对比度得到增强;

r=1时,灰度变换是线性的,即不改变原图像;

r<1时,图像的低灰度区域对比度得到增强。

gama变换在行人检测中经常会被用到。

1.5 灰度阈值变换

灰度阈值变换可以将一幅图像转换成黑白的二值图像。其表达式为:

某些图像分割的方法会用到。

1.6 直方图均衡化

直方图均衡化是一种实用性极高的直方图修正技术,是指通过某种灰度映射使输入图像转换为在每一灰度级上都有近似相同的像素点数的输出图像(即输出的直方图是均匀的)。

在经过均衡化处理后的图像中,像素将占有尽可能多的灰度级并且分布均匀。因此,这样的图像将具有较高的对比度和较大的动态范围。

以上图像处理技术的python实现

# -*- coding:utf-8 -*-

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

# 1.1 获取灰度直方图
def gethist(img):
    arr = np.zeros((1, 256))
    for i in range(img.shape[0]):
        for j in range(img.shape[1]):
            arr[0][img[i][j]] += 1
    return arr

# 1.2 灰度的线性变换
def linearchange(img, fa, fb):
    afterimg = img*fa+fb
    return afterimg

# 1.3 对数变换
def logchange(img, c=1):
    logimg = np.zeros(img.shape)
    normimg = img / float(np.max(img))  # 先归一化,再处理,能显示
    for i in range(img.shape[0]):
        for j in range(img.shape[1]):
            logimg[i][j] = c * np.log(1 + normimg[i][j])
    return logimg

# 1.4 gama变换
def gamachange(img, exp, r):
    gamaimg = np.zeros(img.shape)
    normimg = img/float(np.max(img))
    for i in range(normimg.shape[0]):
        for j in range(normimg.shape[1]):
            gamaimg[i][j] = (normimg[i][j]+exp)**(r)
    return gamaimg

# 1.5 灰度阈值变换
def im2bw(img, T):
    bwimg = np.zeros(img.shape)
    for i in range(img.shape[0]):
        for j in range(img.shape[1]):
            if(img[i][j] < T):
                bwimg[i][j] = 0
            else:
                bwimg[i][j] = 255
    return bwimg


if __name__ == '__main__':
    img = cv2.imread("1.bmp", 0)

    # 1.1 灰度直方图
    allpixels = img.shape[0]*img.shape[1]
    arr = gethist(img)
    # 归一化直方图
    normarr = arr / float(allpixels)
    fig = plt.figure("hist")
    fig.add_subplot(121)
    plt.scatter(np.arange(0, 256).reshape(1, 256), arr)
    fig.add_subplot(122)
    plt.scatter(np.arange(0, 256).reshape(1, 256), normarr)
    plt.show()

    # 1.2 线性变换
    linearimg = linearchange(img, 2, 55) # 此时,fa>1,对比度增大
    #fanimg = linearchange(img,-1,255) # 此时为反向显示
    cv2.imshow("Linear transformation", linearimg)
    #cv2.imshow("反向显示",fanimg)
    cv2.waitKey(0)

    # 1.3 对数变换
    logimg = logchange(img, 1)
    cv2.imshow("Log transformation", logimg)
    cv2.waitKey(0)

    # 1.4 gama变换
    normgama = np.zeros(img.shape)
    gamaimg = gamachange(img,0,2)
    cv2.imshow("gama transformation", gamaimg)
    cv2.waitKey(0)

    # 1.5 灰度阈值变换
    bwimg = im2bw(img,100)
    cv2.imshow("gray threshold transformation", bwimg)
    cv2.waitKey(0)

    # 1.6 直方图均衡化
    histimg = cv2.equalizeHist(img)
    cv2.imshow("hist equalization transformation", histimg)
    cv2.waitKey(0)

运行结果:

2018-11-14 12:22:15 qq_35239859 阅读数 195

图像处理用计算机来对图像进行分析,以达到所需的结果。一般指数字图像处理,指的是通过计算机对图片进行去噪声、增强、复原、分割、提取特征等的方法和技术。

计算机视觉:计算机视觉是利用计算机和其辅助设备来模拟人的视觉功能,实现对客观世界的三维场景的感知、识别和理解。

机器视觉:用机器代替人眼进行测量和判断。

区别:

图像处理侧重于“处理”图像,如增强、还原、去噪、分割等;

机器视觉侧重工程的应用,强调实时性、高精度和高速度;场景相对简单固定,识别 的类型少(在同一个应用中),规则且有规律,但对准确度,处理速度要求都比较高。关于速度,一般机器视觉的分辨率远高于计算机视觉,而且往往要求实时。

计算机视觉的应用场景相对复杂,要识别的物体类型也多,形状不规则,规律性不强。有些时候甚至很难用客观量作为识别的依据,比如识别年龄,性别。所以深度学习比较 适合计算机视觉。而且光线,距离,角度等前 提条件,往往是动态的,所以对于准确度要求,一般来说要低一些 。

 

                                

没有更多推荐了,返回首页