灰度图像

AI-图像基础知识

筅森魡賤 提交于 2019-12-04 19:11:31
    目前人工智能 A rtificial I ntelligence主要分为两大分支: 计算机视常见: C omputer V ision,简称CV   CV主要是研究如何让机器看懂世界的一种技术,通过各种光学传感器来代替人眼对目标对象进行识别,跟踪和检测,使机器能够处理输入的各种图像和视频。 自然语言处理: N atural L anguage P rocessing,简称NLP   NLP主要是研究如何机器读懂世界的一种技术,最终执行如语言翻译、智能客服等。     因为目前所从事的项目都是基于CV的,所以我来总结一下CV的相关知识。从上述简介可以看CV是要让机器看懂世界,那么最直观的就是传递图像或视频给机器。那么我们就需要了解图像和视频的基本知识,如下所示: 图像基础知识     说到图像,最直观的就是一张静态图片。而图像又可以分为 位图图像 和 矢量图像 。 位图图像     位图图像又称 点阵图像 或 栅格图像 ,是指由很多个点按照指定的颜色和一定的顺序组成的矩形网络。当一张位图持续放大到一定比例后,便可以很清楚看到每个矩形网格。如下所示: 常见的图像格式扩展名为:JPG、BMP、PNG、JPEG等 矢量图像     矢量图也称为面向对象的图像或绘图图像,通常由点、直线或多边形等基于数学对象的几何图表示图像。其最大的特点是放大图像后不会失真且和分辨率无关。如下所示:

直方图均衡原理

杀马特。学长 韩版系。学妹 提交于 2019-12-03 22:56:40
如果某一幅图像的直方图覆盖了灰度级很宽的范围,分布均匀,则该图像具有高对比度和多变的灰度色调,也即灰度级丰富且动态范围大,如下图所示 [1] 。 直方图均衡可以使得图像的直方图分布均匀化,拉大灰度间隔,有利于图像的分析和识别。 来源: https://www.cnblogs.com/picassooo/p/11810352.html

灰度图片均衡化源码

你离开我真会死。 提交于 2019-12-03 13:37:56
#灰度图片均衡化 img = cv2.imread('yqk.jpg',0) img_info = img.shape height = img_info[0] width = img_info[1] count_g = np.zeros(256,np.float) #每个像素出现的次数 for i in range(0,height): for j in range(0,width): g = img[i,j] index_g = int(g) count_g[index_g] = count_g[index_g] + 1 #每个像素的概率 for i in range(0,255): count_g[i] = count_g[i] / (height * width) sum1 = float(0) #计算累加概率 for i in range(0,255): sum1+=count_g[i] count_g[i] = sum1 print(count_g) #计算一个映射表 map1 = np.zeros(256,np.uint16) for i in range(0,256): map1[i] = np.uint16(count_g[i]*255) #将像素根据映射表映射一个新的图像 for i in range(0,height): for j in range(0

histeq的原理和用法

匿名 (未验证) 提交于 2019-12-03 00:30:01
参考文档: User’s Guide histeq的原理: [MN]=size(H); [counts,x]=imhist(H); location=find(counts~=0); %找到所有像素个数不为0的灰度级 MinCDF=min(counts(location)); %找到包含个数最少的灰度级 %计算各个灰度级像素个数累计分布 %找到图像中等于某个灰度级所有像素点所在位置 %利用灰度换算公式,修改所有位置上的像素值 end 简单的说,就是将每个灰度值利用一个变换公式替换掉。 简单的例子: clc;clear;closeall; H=imread('pout.tif');figure;subplot(121);imshow(H); H=im2double(H); %这个是需要注意的地方,一定要变换成double类型 [N]=size(H); [counts,x]=imhist(H); location=find(counts~=0); %找到所有像素个数不为0的灰度级 MinCDF=min(counts(location)); %找到包含个数最少的灰度级 for j=1:length(location) %计算各个灰度级像素个数累计分布 %找到图像中等于某个灰度级所有像素点所在位置 %利用灰度换算公式,修改所有位置上的像素值 end subplot(122);imshow

图像预处理

匿名 (未验证) 提交于 2019-12-02 23:54:01
1、主流颜色空间 RGB三通道彩色图,每个通道都是[0,255],常用的三通道―>单通道,Gray=R*0.3+G*0.59+B*0.11 2、图像增强的目标 改善图像的视觉效果 转换为更适合人或机器分析处理的形式; 突出对人或机器分析有意义的信息 抑制无用信息,提高图像的使用价值 包括图像锐化、平滑、去躁、灰度调整(对比度增强) 3、图像处理方法 3.1 特征提取方法 直方图 3.2 空间域处理及其变换 来源: https://www.cnblogs.com/yqpy/p/11337369.html

Python图像灰度变换及图像数组操作

匿名 (未验证) 提交于 2019-12-02 22:54:36
转载自: https://www.jb51.net/article/78762.htm 点击打开链接 使用python以及numpy通过直接操作图像数组完成一系列基本的图像处理 总的想法是:利用PIL库中的Image()函数将图像转为array,通过对array的操作来完成对图像的操作。 numpy简介: NumPy是一个非常有名的 Python 科学计算工具包,其中包含了大量有用的工具,比如数组对象(用来表示向量、矩阵、图像等)以及线性代数函数。 数组对象可以实现数组中重要的操作,比如矩阵乘积、转置、解方程系统、向量乘积和归一化。这为图像变形、对变化进行建模、图像分类、图像聚类等提供了基础。 在上一篇python基本图像操作中,当载入图像时,通过调用 array() 方法将图像转换成NumPy的数组对象。NumPy 中的数组对象是多维的,可以用来表示向量、矩阵和图像。通过对图像的数组进行直接操作,就可以完成很多图像处理。 numpy的相关知识网上有很多资料,作为python科学计算的基础,还是非常值得认真学习的。 使用图像数组进行基本图像操作: 认识图像数组: 通过下面这几个程序我们看一下图像与灰度图的图像数组,以及numpy数组的切片。 ? 1 2 3 4 5 6 7 8 9 10 11 12 # -*- coding: utf-8 -*- from PIL import

灰度共生矩阵-python

匿名 (未验证) 提交于 2019-12-02 22:51:30
博主基于Github Pages与Hexo搭建了个人博客,欢迎访问 http://maself.top 纹理特征刻画了图像中重复出现的局部模式与他们的排列规则,常用于图像分类和场景识别。其只能反映物体表面的特性,无法完全反映出物体的本质属性,所以仅仅利用纹理特征无法获得图像的高层次内容。 优点 : 1. 具有旋转不变性 2. 具有良好的抗噪性能。 缺点 : 1. 当图像的分辨率变化的时候,所计算出来的纹理可能会有较大偏差 2. 有可能受到光照、反射情况的影响 3. 从2-D图像中反映出来的纹理不一定是3-D物体表面真实的纹理 常用的纹理特征提取方法一般分为四大类: 1.基于统计的方法:灰度共生矩阵、灰度行程统计、灰度差分统计、局部灰度统计、半方差图、自相关函数等 优点:方法简单,易于实现。 缺点:无法利用全局信息,与人类视觉模型不匹配;计算复杂度较高,计算耗时。 较为经典的算法为灰度共生矩阵方法,其通过统计不同灰度值对的共现频率得到灰度共生矩阵,基于矩阵可计算出14种统计量:能量、熵、对比度、均匀性、相关性、方差、和平均、和方差、和熵、差方差、差平均、差熵、相关信息测度以及最大相关系数。 灰度梯度共生矩阵将图梯度信息加入到灰度共生矩阵中,综合利用图像的灰度与梯度信息,效果更好。图像的梯度信息一般通过梯度算子(也称边缘检测算子)提取,如sobel、canny、reborts等。 2

直方图均衡基本原理及Python实现

余生长醉 提交于 2019-12-02 21:25:49
1. 基本原理 通过一个变换,将输入图像的灰度级转换为`均匀分布`,变换后的灰度级的概率密度函数为 Ps(s)=1L−1Ps(s)=1L−1 直方图均衡的变换为 s=T(r)=(L−1)∫r0Pr(c)dcs=T(r)=(L−1)∫0rPr(c)dc ss为变换后的灰度级,rr为变换前的灰度级 Pr(r)Pr(r)为变换前的概率密度函数 2. 测试结果 图源自skimage 3.代码 [url=] [/url] 1 import numpy as np 2 3 def hist_equalization(input_image): 4 ''' 5 直方图均衡(适用于灰度图) 6 :param input_image: 原图像 7 :return: 均衡后的图像 8 ''' 9 output_imgae = np.copy(input_image) # 输出图像,初始化为输入 10 11 input_image_cp = np.copy(input_image) # 输入图像的副本 12 13 m, n = input_image_cp.shape # 输入图像的尺寸(行、列) 14 15 pixels_total_num = m * n # 输入图像的像素点总数 16 17 input_image_grayscale_P = [] # 输入图像中各灰度级出现的概率

Welsh经典算法

微笑、不失礼 提交于 2019-12-02 14:29:09
Welsh等人在Reinhard等人的彩色图像间色彩迁移算法的基础上,提出了灰度图像彩色化的思想,并提出了相应的算法。该算法主要利用查找匹配像素来实现灰度图像的色彩迁移,因为灰度图像只有亮度信息,所以该算法主要通过像素的亮度值匹配,来实现灰度图像的自动彩色化。 具体步骤如下: (1)将参考图像和灰度图像分别由RGB空间转换到lαβ色彩空间。 (2)根据灰度图像的亮度及标准差,对参考图像进行亮度重映射。 由于参考图像和灰度图像的直方图取值不一定在同一范围,那么如果将一幅亮度值很低的参考图像与一幅亮度值很高的目标图像的直方图进行对比将会出现较大的误差。因此,需要对参考图像进行亮度重映射: L = (nl’ / nl)* (l – ml) + ml’ 其中,l是源图像l通道的数据,L是变换后得到新的源图像l通道的值,ml和ml’ 分别是源图像和着色图像的l通道的均值,nl和nl’表示它们的l通道标准方差。 (3)从参考图像中随机选取一批样本点,将像素点的亮度和邻域范围内亮度的标准差的线性组合值作为权值,计算公式如下: W = l/2 + σ/2 其中,w为权值,l为像素点的亮度值,σ为该像素点周围某个邻域内亮度值的标准差。关于邻域的大小,Welsh指出一般取5X5,对个别图像取更大的邻域效果会更好。 (4)按行扫描灰度图像,对于每个像素点,由公式计算其权值

数字图像处理之第三章

半世苍凉 提交于 2019-12-02 10:58:12
第三章 图像增强 1.图像增强的方法有很多种,按增强的目的和效果来划分,图像增强的方法大致可以分为灰度级修正、图像平滑、图像锐化、图像增晰和色彩增晰等。 2.灰度级修正(主要用来提高图像对比度,提高人眼视觉分辨能力,包括灰度变换和直方图修正等) 灰度级修正主要针对独立的像素点进行处理,由输入像素点的灰度值来决定相应输出像素点的灰度值,通过改变原始图像所占据的灰度范围而使图像在视觉上得到改观,这种变换没有利用像素点之间的相互空间关系,因而这种处理方法也称为点运算法。 3.灰度级修正有氛围灰度的线性变换、非线性变换和直方图均衡等。 1)灰度的线性变换就是将图像中的所有像素点的灰度按照线性变换函数进行变换; 2)当用某些非线性函数对图像灰度进行映射时,就可以实现图像灰度的非线性变换; 3)直方图修正:图像的灰度图直方图反映图像灰度的统计特性,变大了图像中取不同灰度值的面积或像素数在整幅图像中所占的比例,是图像中最基本的信息。用横坐标表示灰度级,纵坐标表示灰度级出现的频数,一幅图像的直方图可以表示为: 式中,N为一幅图像中的像素总数,nk为第k级灰度的像素数,rk表示第k个灰度级,L为灰度级数,p(rk)表示该灰度级出现的概率。 ①直方图均衡 直方图均衡的基本思想是对原始图像中的像素灰度做某种映射变换,使变换后的图像灰度的概率密度是均匀分布的,即变换后图像是一幅灰度级均匀分布的图像