直方图匹配

反向投影图

你离开我真会死。 提交于 2020-03-02 03:49:44
图像的反向投影图是用输入图像的某一位置上像素值(多维或灰度)对应在直方图的一个bin上的值来代替该像素值,所以得到的反向投影图是单通的。用统计学术语,输出图像象素点的值是观测数组在某个分布(直方图)下的概率。 其中b(xi)表示在位置xi上像素对应的直方图第b(xi)个bin,直方图共m个bin,qu表示第u个bin的值。 还是以例子说明 (1)例如灰度图像如下 Image= 0 1 2 3 4 5 6 7 8 9 10 11 8 9 14 15 (2)该灰度图的直方图为(bin指定的区间为[0,3),[4,7),[8,11),[12,16)) Histogram= 4 4 6 2 (3)反向投影图 Back_Projection= 4 4 4 4 4 4 4 4 6 6 6 6 6 6 2 2 例如位置(0,0)上的像素值为0,对应的bin为[0,3),所以反向直方图在该位置上的值这个bin的值4。 1.反向投影的 作用 是什么? 反向投影用于在 输入 图像(通常较大)中查找特定图像(通常较小或者仅1个像素,以下将其称为 模板 图像)最匹配的点或者区域,也就是 定位 模板图像出现在输入图像的位置。 2.反向投影如何查找(工作)? 查找的方式就是不断的在输入图像中切割跟模板图像大小一致的图像块,并用直方图对比的方式与模板图像进行比较。 假设 我们 有一张100x100的输入图像

数字图像处理及应用(期末复习整理)

社会主义新天地 提交于 2020-02-01 17:08:32
一、图像及其类型 图像(image)的定义是: 在一般意义下,一幅图像是一个物体或对象(object)的另一种表示。亦即图像是其所表示物体或对象信息的一个直接描述和浓缩表示。简而言之,即图像是物体在平面坐标上的直观再现。一幅图像包含了所表示物体的描述信息和特征信息,或者说图像是与之对应的物体或抽象的一个真实表示,这个表示可以通过某些技术手段实现。 数字图像处理(digital image processing): 又称为计算机图像处理,它是通过计算机对图像进行去除噪声、增强、变换、复原、分割、特征提取、识别等运算与处理。 图像的分类: 可见图像(visible image): 是指视觉系统可以直接看见的图像,这也是大多数人在日常生活中所见到的和所理解的图像,这一类图像一般通过照像、手工绘制等传统方法获得,通常计算机不能直接处理,但是经过数字化处理后可变为数字图像。 物理图像(physical image): 所反映的是物体的电磁波辐射能,包括可见光和不可见光图像。 数字图像(maths image) :指由连续函数或离散函数生成的抽象图像,其中离散函数所生成的图像就是计算机可以处理的数字图像。 其他相关概念: 计算机图形学(computer graphic): 是指利用计算机技术将概念或数学描述所表示的物体(非实物)图像进行处理和显示的过程。 计算机视觉(computer

图像增强算法

旧时模样 提交于 2020-01-25 09:33:35
图像增强 图像增强算法概述 图像增强的目的是改善图像的视觉效果或使图像更适合于人或机器的分析处理。通过图像增强可以减少图像噪声,提高目标与背景的对比度,亦可以强调或抑制图像中的某些细节。例如,消除照片中的划痕,改善光照不均匀的图像,突出目标的边缘等。根据处理的空间可以将图像增强分为空域法和频域法,前者直接在图像的空间域(或图像空间)中对像素进行处理,后者在图像的变换域(即频域)内简介处理,然后经逆变换获得增强图像。空域增强可以分为点处理和区处理,频域增强可以分为低通滤波,高通滤波,带通滤波和同态滤波。本文主要介绍的是空域法。 直方图均衡化和规定化 直方图均衡化基本思想 直方图均衡化的基本思想是把原始图像的直方图变换为均匀分布的形式,从而增强图像灰度的变化范围,以达到增强图像对比度的效果。经过均衡化处理的图像,其灰度级出现的概率相同,此时图像的熵最大,图像所包含的信息量最大。 均衡化的详细原理 直方图规定化基本思想 直方图均衡化能够增强整个图像的对比度,但增强效果不易控制,处理得到的是全局均衡化的直方图。然后实际应用中可能希望将直方图变换为某个特定的形状(规定的直方图),从而有选择地增强某个灰度范围内的对比度,这种方法就称为直方图规定化。直方图规定化可以借助直方图均衡化来实现。 任意两幅灰度图像,显示它们的直方图,并将其中一幅的直方图传递给另一个图像,显示传递后的图像及其直方图。

GML和SML映射规则

試著忘記壹切 提交于 2020-01-20 00:55:55
GML和SML原理 GML规定化(组映射) 先列出图像灰度值i,j,计算原始直方图Pr(i),列出规定直方图Pz(j),计算原始累计直方图Pi和规定累计直方图Pj,然后按照Pj到Pi寻找最接近的值存储为j,当满足给定的值多于一个时,按惯例取最小值。确定变换关系为i->j,最后列出匹配直方图P(j)。 SML规定化(单映射) 先列出图像灰度值i,j,计算原始直方图Pr(i),列出规定直方图Pz(j),计算原始累计直方图Pi和规定累计直方图Pj,然后按照Pi到Pj寻找最接近的值存储为j,当满足给定的值多于一个时,按惯例取最小值。确定变换关系为i->j,最后列出匹配直方图P(j)。 映射结果与分析 GML(组映射)映射结果 GML映射分析 先列出图像灰度值i,j,计算原始直方图Pr(i),列出规定直方图Pz(j),计算原始累计直方图Pi和规定累计直方图Pj,然后按照Pj到Pi寻找最接近的值存储为j,当满足给定的值多于一个时,按惯例取最小值。确定变换关系为i->j,最后列出匹配直方图P(j)。 SML(单映射)映射结果 SML映射分析 先列出图像灰度值i,j,计算原始直方图Pr(i),列出规定直方图Pz(j),计算原始累计直方图Pi和规定累计直方图Pj,然后按照Pi到Pj寻找最接近的值存储为j,当满足给定的值多于一个时,按惯例取最小值。确定变换关系为i->j,最后列出匹配直方图P(j)。

第三章 灰度变换与空间滤波

有些话、适合烂在心里 提交于 2019-12-27 11:31:30
3.1 背景知识 3.1.1 灰度变换和空间滤波基础 本节讨论的所有图像处理技术都是在空间域进行的。空间与包含图像像素的简单平面。与频率域相反,空间域技术是直接操作图像像素的简单平面。 本章讨论的空间域处理可有下式表示: g ( x , y ) = T ⋅ [ f ( x , y ) ] g(x,y)=T\cdot [f(x,y)] g ( x , y ) = T ⋅ [ f ( x , y ) ] 式中, f ( x , y ) f(x,y) f ( x , y ) 是输入图像, g ( x , y ) g(x,y) g ( x , y ) 是输出图像, T T T 是在点的邻域上定义的关于f的一种算子。算子可应用于单幅图像或图像集合。 邻域与预定义的操作一起称为空间滤波器(也称为空间掩模、核、模板、窗口)。在邻域中执行的操作据欸的那个了滤波处理的特性。 最小邻域为 1 × 1 1\times 1 1 × 1 。在这种情况下, g g g 仅取决于点(x,y)处的 f f f 值,而式(3.1-1)中的 T T T 则成为一个形如下式的灰度(也称为灰度级或映射)变换函数: s = T ( r ) s=T(r) s = T ( r ) 式中,令 s s s 和 t t t 分别表示 g g g 和 f f f 在任意点 ( x , y ) (x,y) ( x , y ) 处的灰度。

OpenCV学习Day05--2D直方图、直方图反向投影

旧巷老猫 提交于 2019-11-27 06:00:17
#直方图反向投影 ''' 反向投影可以通过颜色直方图来理解,我们检测图像中某个像素点的颜色是否位于直方图中,如果位于则将颜色加亮, 通过对图像的检测,得出结果图像,结果图像一定和直方图像匹配。那么对于图像颜色的取样点越多,越能更好的找出目标图形。 这里直方图的作用在于提供一个比较标准(也就是模版),即对于要检测的图像来说,需要给它提供一个模版,用于识别出和模版 相应的特征。 ''' import cv2 as cv import numpy as np import matplotlib as mpl mpl.use('TkAgg') from matplotlib import pyplot as plt def backProjectionDemo(): sample=cv.imread("E:\OpenCVTests\QQ20190813185411.png")#读取样本与目标图像,并将其转换为HSV色彩模式 target=cv.imread("E:\OpenCVTests\IMG_4686.JPG") spHSV=cv.cvtColor(sample,cv.COLOR_BGR2HSV) tarHSV=cv.cvtColor(target,cv.COLOR_BGR2HSV) cv.imshow("sample",sample) cv.imshow("target",

反向投影(Back Projection)

こ雲淡風輕ζ 提交于 2019-11-27 00:26:16
官网教程 原理 反向投影表示的是一种(给定的一幅图的直方图)和(需要匹配的图的像素)匹配程度。 举例:如果已知一副图像的直方图,图中有特征区域, 根据此直方图能在其他图像中检测到相似的特征区域 步骤: 先对特征图片计算它的直方图(可能是多维) 遍历匹配图像,找到每一个像素点对应特征图的直方图中的bin 将此bin中的值保存到新图像(最后的back projection) 代码 官网代码 # include <opencv2/opencv.hpp> # include <iostream> using namespace cv ; using namespace std ; Mat hue ; int bins = 25 ; void Hist_and_Backprj ( int , void * ) ; int main ( void ) { Mat src = imread ( "../res/hand.jpg" ) ; if ( src . empty ( ) ) { cout << "can't load the image" << endl ; } Mat hsv ; cvtColor ( src , hsv , cv : : COLOR_BGR2HSV ) ; hue . create ( src . size ( ) , src . depth ( ) ) ; int