灰度图像

Matlab中图像处理实例:灰度变换,空域滤波,频域滤波,傅里叶变换的实现

≯℡__Kan透↙ 提交于 2019-12-16 17:46:44
http://blog.sciencenet.cn/blog-95484-803140.html % %图像灰度变换 % f = imread('E:\2013第一学期课程\媒体计算\实验一\Img\Fig0303(a)(breast).tif'); % g1 = imadjust(f, [0 1], [1 0]); % g2 = imadjust(f, [0.5 0.75], [0 1]); % g3 = imadjust(f,[],[],2); % subplot(2,2,1), imshow(f), title('原始图像'); % subplot(2,2,2), imshow(g1), title('负片图像'); % subplot(2,2,3), imshow(g2), title('亮度扩展图像'); % subplot(2,2,4), imshow(g3), title('gama=2 图像'); % % f1 = imread('E:\2013第一学期课程\媒体计算\实验一\Img\Fig0308(a)(pollen).tif'); % figure,imshow(f1); % figure,imhist(f1) % ylim('auto') % f1g1 = histeq (f1, 256); % figure,imshow(f1g1) % figure

EasyPR--开发详解(7)字符分割

99封情书 提交于 2019-12-16 17:01:59
  大家好,好久不见了。   一转眼距离上一篇博客已经是 4 个月前的事了。要问博主这段时间去干了什么,我只能说:我去“ 外面看了看”。 图1 我想去看看      在外面跟几家创业公司谈了谈,交流了一些大数据与机器视觉相关的心得与经验。不过由于各种原因,博主又回来了。   目前,博主的工作是在本地的一个高校做科研。而研究的方向主要是计算机视觉。 图2 科研就是不断的探索过程   由于我所做的是计算机视觉方向,跟EasyPR本身非常契合。未来这个这个系列的博客会继续下去,并且以后会有更加专业的内容。   目前我研究的方向是文字定位,这个技术跟车牌定位很像,都是在图中去定位一些语言相关的位置。不同之处在于,车牌定位只需要处理的是在车牌中出现的文字,字体,颜色都比较固定,背景也比相对单一(蓝色和黄色等)。   文字定位则复杂很多,研究界目前要处理的是是各种类型,不同字体,且拥有复杂背景的文字。下图是一张样例: 图3 文字定位图片样例   可以看出,文字定位要处理的问题是类似车牌定位的,不过难度要更大。一些文字定位的技术也应该可以应用于车牌的定位和识别。   未来EasyPR会借鉴文字定位的一些思想和技术,来强化其定位的效果。 一.前言   今天继续我们 EasyPR的 开发详解。   这几个月我收到了不少的邮件问:为什么 EasyPR 开发详解教程中只有车牌定位的部分,

rgb变为灰度图像

╄→гoц情女王★ 提交于 2019-12-16 14:15:00
close all; clc; x = imread('C:\\timg.jpg'); %读取rgb图片信息 I = rgb2gray(x);%将rgb图像转化为灰度图像 set(0,'defaultFigurePosition',[100,100,1000,500]); %修改图像位置的默认设置 [距离左上角的宽,距离左上角的高,窗口宽,窗口高] set(0,'defaultFigureColor',[1 0 1]); %修改图形背景颜色的设置 [1 1 1]是白色 subplot(121),imshow(x); %显示原图像 121指一行两列第一个位置 subplot(122),imshow(I); 该程序可将一张照片灰度化,不可将灰度化照片保存到单独文件夹 来源: https://www.cnblogs.com/wjn1996/p/12028089.html

上采样和下采样

可紊 提交于 2019-12-13 12:06:25
缩小图像(或称为下采样(subsampled)或降采样(downsampled))的主要目的有两个:1、使得图像符合显示区域的大小;2、生成对应图像的缩略图。 放大图像(或称为上采样(upsampling)或图像插值(interpolating))的主要目的是放大原图像,从而可以显示在更高分辨率的显示设备上。对图像的缩放操作并不能带来更多关于该图像的信息, 因此图像的质量将不可避免地受到影响。然而,确实有一些缩放方法能够增加图像的信息,从而使得缩放后的图像质量超过原图质量的。 下采样原理:对于一幅图像I尺寸为M*N,对其进行s倍下采样,即得到(M/s)*(N/s)尺寸的得分辨率图像,当然s应该是M和N的公约数才行,如果考虑的是矩阵形式的图像,就是把原始图像s*s窗口内的图像变成一个像素,这个像素点的值就是窗口内所有像素的均值: 上采样原理:图像放大几乎都是采用内插值方法,即在原有图像像素的基础上在像素点之间采用合适的插值算法插入新的元素。 无论缩放图像(下采样)还是放大图像(上采样),采样方式有很多种。如最近邻插值,双线性插值,均值插值,中值插值等方法。在AlexNet中就使用了较合适的插值方法。各种插值方法都有各自的优缺点。 常用的插值方法 1、最邻近元法   这是最简单的一种插值方法,不需要计算,在待求象素的四邻象素中,将距离待求象素最近的邻象素灰度赋给待求象素。设i+u, j

Unity Shader 屏幕后处理灰度

主宰稳场 提交于 2019-12-11 03:30:43
原理: 移除场景中除了黑白灰以外所有的颜色,让整个图像灰度化(Grayscale)。很简单的实现方式是,取所有的颜色分量,将它们平均化,但是但人眼会对绿色更加敏感一些,而对蓝色不那么敏感,所以为了获取物理上更精确的效果,我们需要使用加权的(Weighted)通道: 脚本如下: public Shader shader ; //相应的shader private Material mat = null ; //相应的材料 public Material material { get { mat = CheckShaderAndCreateMaterial ( shader , mat ) ; return mat ; } } void OnRenderImage ( RenderTexture src , RenderTexture dest ) { if ( material != null ) { Graphics . Blit ( src , dest , material ) ; } else { Graphics . Blit ( src , dest ) ; } } Shader实现如下: Properties { _MainTex ( "Base (RGB)" , 2 D ) = "white" { } //渲染纹理 } SubShader { Pass { ZTest

webgl 灰度shader

给你一囗甜甜゛ 提交于 2019-12-08 14:16:55
var canvasElement=document.getElementById('webgl'); var gl=canvasElement.getContext('webgl'); //顶点着色器源码 var vertexShaderSource = '' + 'attribute vec4 a_Position;'+//顶点位置坐标 'attribute vec2 a_TexCoord;' +//纹理坐标 'varying vec2 v_TexCoord;'+//插值后纹理坐标 'void main(){' + 'gl_Position = a_Position;' +//逐顶点处理 'v_TexCoord = a_TexCoord;' +//纹理坐标插值计算 '}'; //片元着色器源码 var fragShaderSource = '' + 'precision highp float;' +//所有float类型数据的精度是lowp 'varying vec2 v_TexCoord;'+//接收插值后的纹理坐标 'uniform sampler2D u_Sampler;' +//纹理图片像素数据 'void main(){' + //采集纹素 'vec4 texture = texture2D(u_Sampler,v_TexCoord);' + /

Python中的图像处理

有些话、适合烂在心里 提交于 2019-12-08 03:00:03
http://www.ituring.com.cn/tupubarticle/2024 第 1 章 基本的图像操作和处理 本章讲解操作和处理图像的基础知识,将通过大量示例介绍处理图像所需的 Python 工具包,并介绍用于读取图像、图像转换和缩放、计算导数、画图和保存结果等的基本工具。这些工具的使用将贯穿本书的剩余章节。 1.1 PIL:Python图像处理类库 PIL(Python Imaging Library Python,图像处理类库)提供了通用的图像处理功能,以及大量有用的基本图像操作,比如图像缩放、裁剪、旋转、颜色转换等。PIL 是免费的,可以从 http://www.pythonware.com/products/pil/ 下载。 利用 PIL 中的函数,我们可以从大多数图像格式的文件中读取数据,然后写入最常见的图像格式文件中。PIL 中最重要的模块为 Image 。要读取一幅图像,可以使用: from PIL import Image pil_im = Image . open ( 'empire.jpg' ) 上述代码的返回值 pil_im 是一个 PIL 图像对象。 图像的颜色转换可以使用 convert() 方法来实现。要读取一幅图像,并将其转换成灰度图像,只需要加上 convert('L') ,如下所示: pil_im = Image . open (

OpenCV像素级操作,灰度图像以及三色图像的反色处理

☆樱花仙子☆ 提交于 2019-12-06 16:36:55
#include <opencv2/opencv.hpp> #include <iostream> #include <math.h> using namespace cv; using namespace std; int main() { Mat src; //原图 src = imread(".//pic//test.jpg",IMREAD_UNCHANGED); if (src.empty()) { cout << "can not load image" << endl; return -1; } namedWindow("input", CV_WINDOW_AUTOSIZE); imshow("input", src); //单通道图像反色处理 Mat gray_src; cvtColor(src, gray_src, CV_BGR2GRAY); namedWindow("input", CV_WINDOW_AUTOSIZE); imshow("output", gray_src); int height = gray_src.rows; int width = gray_src.cols; /*for (int row = 0; row < height; row++) { for (int col = 0; col < width; col++) { int

数字图像处理(三)

一笑奈何 提交于 2019-12-05 20:21:00
图像的增强与复原 一、图像的灰度直方图 1、灰度直方图的定义    灰度直方图是灰度级的函数,描述的是图像中该灰度级的像素个数。即:横坐标表示灰度级,纵坐标表示图像中该灰度级出现的个数。 2、数字图像的描述 1)黑白图像     是指图像的每个像素只能是黑或者白,没有中间的过渡,故又称为2值图像。2值图像的像素值为0、1 2)灰度图像 灰度图像是指每个像素的信息由一个量化的灰度级来描述的图像,没有彩色信息 3)彩色图像是指每个像素的信息由RGB三原色构成的图像,其中RBG是由不同的灰度级来描述的 3、直方图的性质 (1.所有的空间信息全部丢失。 (2.每一灰度级的像素个数可直接得到。 4、直方图的用途 (1 . 数字化参数    直方图给出了一个简单可见的指示,用来判断一幅图象是否合理的利用了全部被允许的灰度级范围。一般一幅图应该利用全部或几乎全部可能的灰度级,否则等于增加了量化间隔。丢失的信息将不能恢复。 (2. 边界阈值选取    假设某图象的灰度直方图具有 二峰性,则表明这个图象的较亮的区域和较暗的区域可以较好地分离,去这一点为阈值点,可以得到好的2值处理的效果。 二、图像的灰度变换(灰度变换的目的是为了改善画质,使图像的显示效果更加清晰。) 1、输入图像的r校正(我们知道,数字图像信息的获取来自于图像传感器。但是输入输出特性不是线性的,所以如果不进行校正处理的话

python验证码识别教程之灰度处理、二值化、降噪与tesserocr识别

青春壹個敷衍的年華 提交于 2019-12-05 09:57:34
python验证码识别教程之灰度处理、二值化、降噪与tesserocr识别 更新时间:2018年06月04日 11:04:53 作者:Hi!Roy! 我要评论 这篇文章主要给大家介绍了关于python验证码识别教程之灰度处理、二值化、降噪与tesserocr识别的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧 前言 写爬虫有一个绕不过去的问题就是验证码,现在验证码分类大概有4种: 图像类 滑动类 点击类 语音类 今天先来看看图像类,这类验证码大多是数字、字母的组合,国内也有使用汉字的。在这个基础上增加噪点、干扰线、变形、重叠、不同字体颜色等方法来增加识别难度。 相应的,验证码识别大体可以分为下面几个步骤: 灰度处理 增加对比度(可选) 二值化 降噪 倾斜校正分割字符 建立训练库 识别 由于是实验性质的,文中用到的验证码均为程序生成而不是批量下载真实的网站验证码,这样做的好处就是可以有大量的知道明确结果的数据集。 当需要真实环境下需要获取数据时,可以使用结合各个大码平台来建立数据集进行训练。 生成验证码这里我使用 Claptcha ( 本地下载 )这个库,当然 Captcha ( 本地下载 )这个库也是个不错的选择。 为了生成最简单的纯数字、无干扰的验证码,首先需要将claptcha.py的285行_drawLine做一些修改