灰度图像

OpenCV--Python 图像增强

喜你入骨 提交于 2020-01-19 04:01:43
图像增强主要解决由于图像的灰度级范围较小造成的对比度较低的问题,目的就是将输出图像的灰度级放大到指定的程度,使得图像中的细节看起来增加清晰。对比度增强有几种常用的方法,如线性变换、分段线性变换、伽马变换、直方图正规化、直方图均衡化、局部自适应直方图均衡化等。 1.灰度直方图 在讲解图像增强的方法之前先来认识一下灰度直方图,灰度直方图是图像灰度级的函数,用来描述每个灰度级在图像矩阵中的像素个数或者占有率。接下来使用程序实现直方图: import cv2 as cv import numpy as np import matplotlib . pyplot as plt def calcGrayHist ( I ) : # 计算灰度直方图 h , w = I . shape [ : 2 ] grayHist = np . zeros ( [ 256 ] , np . uint64 ) for i in range ( h ) : for j in range ( w ) : grayHist [ I [ i ] [ j ] ] += 1 return grayHist img = cv . imread ( "../testImages/4/img1.jpg" , 0 ) grayHist = calcGrayHist ( img ) x = np . arange ( 256 ) #

简单的图像特效(上)

喜你入骨 提交于 2020-01-13 01:12:19
文章目录 简单介绍 正文 灰度变换 马赛克 浮雕 油画 全局均衡化 EMMM 简单介绍 博主是某工大的学生,最近在做各科的课设,然后其中一个是C++图像处理的课程设计。做这种东西没啥技术含量,但是加上写报告又得浪费个一两天的时间。 为了节约各位大佬们的时间(为了打发无聊),我在这里简单总结一下之前查到的各种简单的图像处理特效实现方法,尽量帮到想要想要学习图像处理特效的大家。 在评论里我会贴上一个完整的实现链接。帮到下个学期想要直接用到这个的小伙伴们~老师还没出成绩,我担心老师对照网上突然发现我的代码查重率100%,所以出成绩后我再贴上地址蛤。 正文 首先,博主使用的是老师发下的CDIB类和VS的MFC框架来实现。上网查的时候发现不同人写的CDIB类区别还挺大的,所以我要先对这个类做一下介绍,方便只是想学方法的同学能够理解之后的部分核心代码的意思。 以下是CDIB类的头文件。其中: ShowDIB使用是把对应的三维按照BGR的格式打印到屏幕上。 m_pDIBData是彩色图片信息(自带补零位)。 m_pDIBDumpData是原始图片的的信息(自带补零位)。 m_pdata是图片的灰度信息(无补零位)。 知道这些信息,然后再和你们自己设计的cdib类对应起来,就会方便很多。 tips:关于补零位,这是bmp格式文件的特色,为了加快运行速度而设计的,想要仔细了解的同学可以在 该博客

Python综合应用:手把手教你用字符打印一张怀旧风格的照片

不想你离开。 提交于 2020-01-11 06:06:56
1. 前言 第一次在学校机房里见到计算机,还是上古时期。计算机型号大概是LASER-310吧,有点记不清了。那会儿,显示器还是单色的,只能显示文本,每行最多显示80个字符。想看图片,印象中只能用针式打印机打印在两侧穿孔的宽行打印纸上,每个像素用一个字符表示,不同的字符代表不同的灰度,就像下图这个样子。有没有感觉到浓郁古风呢?其实,随便一张照片,十几行Python代码,你也可以打印出这样的效果,还可以保存成文件。下面,我就一步一步地演示一下。 2. 打开图片,转为灰度模式 Python用于图像处理的模块有很多,最常用的当属PIL和PyOpenCV了。本案使用PIL模块来打开图像: >>> from PIL import Image >>> im = Image.open('xufive.jpg') >>> im.size (979, 1248) >>> im.mode 'RGB' im就是打开的图像对象,im.size是图像的分辨率,im.mode是图像模式。我们知道,计算机图像有很多种颜色模式,RGB是最常见的彩色图像模式。打印字符图片的话,需要将RGB模式转为灰度模式: >>> im = im.convert('L') >>> im.mode 'L' 3. 改变分辨率 打印字符图片,需要考虑显示器每行显示的字符个数。假定屏幕水平分辨率为1920,每个字符宽度占8个像素

Python综合应用:教你用字符打印一张怀旧风格的照片

你。 提交于 2020-01-02 21:40:30
1. 前言 第一次在学校机房里见到计算机,还是上古时期。计算机型号大概是LASER-310吧,有点记不清了。那会儿,显示器还是单色的,只能显示文本,每行最多显示80个字符。想看图片,印象中只能用针式打印机打印在两侧穿孔的宽行打印纸上,每个像素用一个字符表示,不同的字符代表不同的灰度,就像下图这个样子。有没有感觉到浓郁古风呢?其实,随便一张照片,十几行Python代码,你也可以打印出这样的效果,还可以保存成文件。下面,我就一步一步地演示一下。 2. 打开图片,转为灰度模式 Python用于图像处理的模块有很多,最常用的当属PIL和PyOpenCV了。本案使用PIL模块来打开图像: 1 >>> from PIL import Image 2 >>> im = Image.open('xufive.jpg') 3 >>> im.size 4 (979, 1248) 5 >>> im.mode 6 'RGB' im就是打开的图像对象,im.size是图像的分辨率,im.mode是图像模式。我们知道,计算机图像有很多种颜色模式,RGB是最常见的彩色图像模式。打印字符图片的话,需要将RGB模式转为灰度模式: 1 >>> im = im.convert('L') 2 >>> im.mode 3 'L' 3. 改变分辨率 打印字符图片,需要考虑显示器每行显示的字符个数。假定屏幕水平分辨率为1920

双线性插值原理与实现

北慕城南 提交于 2019-12-30 20:19:19
在对图像进行空间变换的过程中,典型的情况是在对图像进行放大处理的时候,图像会出现失真的现象。这是由于在变换之后的图像中,存在着一些变换之前的图像中没有的像素位置。为了说明这个问题,不妨假设有一副大小为64x64的灰度图像A,现在将图像放大到256x256,不妨令其为图像B,如图1所示。显然,根据简单的几何换算关系,可以知道B图像中(x,y)处的像素值应该对应着A图像中的(x/4,y/4)处的象素值,即 B(x,y) = A(x/4,y/4) (式1) 对于B中的(4,4),(4,8),(4,16)…(256,256)这些位置,通过式1就可以计算出其在A中的位置,从而可以得到灰度值。但是,对于B中的(1,1),(1,2),(1,3)…等等这些坐标点而言,如果按照式1计算的话,那么它们在A中对应的坐标不再是整数。比如,对于B中的坐标点(1,1),其在A中的对应坐标就变成了(0.25,0.25)。对于数字图像而言,小数坐标是没有意义的。因此,必须考虑采用某种方法来得到B中像素点在A中对应位置上的灰度级。处理这一问题的方法被称为图像灰度级插值。常用的插值方式有三种:最近邻域插值、双线性插值、双三次插值。理论上来讲,最近邻域插值的效果最差,双三次插值的效果最好,双线性插值的效果介于两者之间。不过对于要求不是非常严格的图像插值而言,使用双线性插值通常就足够了。

灰度变换增强

人盡茶涼 提交于 2019-12-28 19:00:55
文章目录 1.线性变换与非线性变换 2.MATLAB的灰度变换函数 灰度变换增强是将图像的对比度从弱变强的过程,所以也通常称为对比度增强。各种因素的限制,导致图像的对比度比较差,图像的直方图分布不够均衡,主要的元素集中在几个像素值附近。通过对比度增强,使得图像中各个像素值尽可能均匀分布或者服从一定形式的分布,从而提高图像的质量。 灰度变换可使图像动态范围增大,对比度得到拓展,使图像清晰、特征明显,是图像增强的重要手段之一。它主要利用点运算来修正像素灰度,由输入像素点的灰度值确定相应输出点的灰度值,是一种基于图像变换的操作。 灰度变换不改变图像内的空间关系,除了灰度级的改变是根据某种特定的灰度函数进行之外,可以看做是‘从像素到像素’的复制操作。 1.线性变换与非线性变换 设原图像为f(x,y),其灰度范围为[a,b],变换后的图像为g(x,y),其灰度范围线性扩展至[c,d],则对于图像中的任一点的灰度值f(x,y),灰度变换后为g(x,y),其数学表达式为 若图像中大部分像素的灰度级分布在区间[a,b]内,maxf为原图的最大灰度级,只有很小一部分的灰度级超过了此区间,则为了改善增强效果,可以令 采用线性变换对图像中每一个像素灰度作线性拉伸,将有效改善图像视觉效果。在曝光不足或曝光过度情况下,图像的灰度可能会局限在一个很小的范围内,这时得到的图像可能是一个模糊不清

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

有些话、适合烂在心里 提交于 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 ) 处的灰度。

图像切割之(一)概述

前提是你 提交于 2019-12-26 09:42:36
图像切割之(一)概述 zouxy09@qq.com http://blog.csdn.net/zouxy09 所谓图像切割指的是依据灰度、颜色、纹理和形状等特征把图像划分成若干互不交迭的区域,并使这些特征在同一区域内呈现出相似性,而在不同区域间呈现出明显的差异性。我们先对眼下基本的图像切割方法做个概述,后面再对个别方法做具体的了解和学习。 1 、基于阈值的切割方法 阈值法的基本思想是基于图像的灰度特征来计算一个或多个灰度阈值,并将图像中每一个像素的灰度值与阈值相比較,最后将像素依据比較结果分到合适的类别中。因此,该类方法最为关键的一步就是依照某个准则函数来求解最佳灰度阈值。 2 、基于边缘的切割方法 所谓边缘是指图像中两个不同区域的边界线上连续的像素点的集合,是图像局部特征不连续性的反映,体现了灰度、颜色、纹理等图像特性的突变。通常情况下,基于边缘的切割方法指的是基于灰度值的边缘检測,它是建立在边缘灰度值会呈现出阶跃型或屋顶型变化这一观測基础上的方法。 阶跃型边缘两边像素点的灰度值存在着明显的差异,而屋顶型边缘则位于灰度值上升或下降的转折处。正是基于这一特性,能够使用微分算子进行边缘检測,即使用一阶导数的极值与二阶导数的过零点来确定边缘,详细实现时能够使用图像与模板进行卷积来完毕。 3 、基于区域的切割方法 此类方法是将图像依照相似性准则分成不同的区域,主要包含种子区域生长法

图像切割之(一)概述

强颜欢笑 提交于 2019-12-25 03:23:05
图像切割之(一)概述 zouxy09@qq.com http://blog.csdn.net/zouxy09 所谓图像切割指的是依据灰度、颜色、纹理和形状等特征把图像划分成若干互不交迭的区域,并使这些特征在同一区域内呈现出相似性,而在不同区域间呈现出明显的差异性。我们先对眼下基本的图像切割方法做个概述,后面再对个别方法做具体的了解和学习。 1 、基于阈值的切割方法 阈值法的基本思想是基于图像的灰度特征来计算一个或多个灰度阈值,并将图像中每一个像素的灰度值与阈值相比較,最后将像素依据比較结果分到合适的类别中。因此,该类方法最为关键的一步就是依照某个准则函数来求解最佳灰度阈值。 2 、基于边缘的切割方法 所谓边缘是指图像中两个不同区域的边界线上连续的像素点的集合,是图像局部特征不连续性的反映,体现了灰度、颜色、纹理等图像特性的突变。通常情况下,基于边缘的切割方法指的是基于灰度值的边缘检測,它是建立在边缘灰度值会呈现出阶跃型或屋顶型变化这一观測基础上的方法。 阶跃型边缘两边像素点的灰度值存在着明显的差异,而屋顶型边缘则位于灰度值上升或下降的转折处。正是基于这一特性,能够使用微分算子进行边缘检測,即使用一阶导数的极值与二阶导数的过零点来确定边缘,详细实现时能够使用图像与模板进行卷积来完毕。 3 、基于区域的切割方法 此类方法是将图像依照相似性准则分成不同的区域,主要包含种子区域生长法

图像预处理

被刻印的时光 ゝ 提交于 2019-12-18 19:07:48
文章目录 为什么需要图像预处理? 图像预处理流程 一,灰度化 (1)分量法 (2)最大值法 (3)平均值法 (4)加权平均法 二,几何变换 (1)opencv来进行图像的空间变换 (2)双线性插值算法实现缩放 三,图像增强 (1)频率域法 (2)空间域法 为什么需要图像预处理? 图像预处理的主要目的是消除图像中无关的信息,恢复有用的真实信息,增强有关信息的可检测性和最大限度地简化数据,从而改进特征抽取、图像分割、匹配和识别的可靠性。 图像预处理流程 一般的图像预处理步骤为: 灰度化 ——> 几何变换 ——> 图像增强 一,灰度化 灰度化,在RGB模型中,如果R=G=B时,则彩色表示一种灰度颜色,其中R=G=B的值叫灰度值,因此,灰度图像每个像素只需一个字节存放灰度值(又称强度值、亮度值),灰度范围为0-255。一般有分量法,最大值法,平均值法,加权平均法四种方法对彩色图像进行灰度化。 (1)分量法 三个灰度图像的灰度值是彩色图像中三分量中任意一个分量的亮度值,可以是R分量作为灰度值,也可以是G分量和B分量 f1(i,j)=R(i,j)f2(i,j)=G(i,j)f3(i,j)=B(i,j) from PIL import Image import numpy as np def image2array ( image ) : """ :param image: 图片 :return