数字图像基本知识

1.什么是数字图像?数字图像处理有哪些特点?
答: 数字图像是由有限的元素组成,每一个像素的空间位置(x,y)和强度值f都被量化成离散的数值,这些元素称为像素。因此,数字图像是具有离散值的二维像素矩阵,能够存储在计算机存储器里面,方便处理。
量化:对模拟图像进行采样之后所得到的小图像块的像素值仍然是连续的,所以要对其像素值进行离散化处理,即量化。
数字图像处理特点:
1、信息量大。数字图像处理的信息大多数是二维信息,是由图像矩阵中的像素组成的,而每个像素是由红、绿、蓝三种颜色表示的,每种颜色用8位表示灰度级,一幅没有经过压缩的1024X768的真彩图像,它的数据可以达到2M。所以庞大的数据量给数字图像的存储、传输、处理都带来了困难。
2、处理精度高,再现性好。用计算机处理图像数据,其实实质就是对图像数据进行各种运算,当然这是色彩的运算。现代的扫描仪可以把每个像素的灰度等级量化为16位甚至更高,这就意味着图像的数字化精度可以达到满足任何应用需求。
3、适用面宽。图像可以来自各种信息源。他们可以是可见光图像,也可以是不可见的光谱图像。
4、效果易于控制。在数字图像处理过程中,可以任意的改变参数,有效的控制处理过程。比如可以在PS软件中进行色相/饱和度的参数调节,从而达到预计的效果。
5、处理费时间。这点很好理解,由于数据量大,处理所需要的时间也是很多的。如果处理一个像素需要1毫秒,那么处理700X500像素的数据就将需要花费大约6分钟的时间。
6、灵活性高。图像处理大体上可以分为图像的画质改善,图像分析和图像的重建。这三部分都包含丰富的内容。
7、数字图像受人的因素影响较大。因为处理图像一般是给人观察和评价的,由于每个人的视觉系统很复杂,受环境、光线、视觉性能等诸多因素的影响。

  • 若RGB图像中的每一幅红、绿、蓝图像都是一幅8bit图像,则改RGB图像所有可能的颜色总数是多少?
    答:RGB分三原色,8bit,那么每种原色共有256个值
    所以三原色所能组成的颜色共有256256256=16777216 种。
    -编程:
    图像导入,裁剪显示(长宽分别为原尺寸1/2),彩色图像灰度化,保存。

    分析:彩色图像是具有三通道(R,G,B)的图片,而灰度图像是只具有单通道的图像,二值图像就是黑白图片,只有黑白两个颜色,所有在了解这三者的区别之后再做就方便了。
    为了得到灰度图像,可以取rgb三通道的任意一个通道的矩阵就可以,或者使用内置函数rgb2gray(实际上是用的加权取得的,可以用help rgb2gray查看文档),或者使用最大值法,平均法。下面写了对应的五种方法,请看代码。
    对于裁剪,可以用内置函数,还有就是自己根据图片大小显示对应的区域。详情请看代码。
    源代码+注释+说明
img = imread('E:\photo\matlabtest\testone.jpg'); %读取grb格式的图像
rect = [300 300 1000 1000];    %构建裁剪起始位置以及大小。
imgcrop = imcrop(img,rect);    %调用函数
imgcaijian = img(1:1250,1:720,:);
imgbw = img(:,:,1);    %直接取r,g,b其中一个二维矩阵,1,2,3,都可以。
first = rgb2gray(img);  %用函数进行灰度变换,其实就是加权平均方法, 0.299 * R + 0.587 * G + 0.114 * B
[rows,cols,colors]=size(img);  %得到原来图像的矩阵的参数
second = zeros(rows,cols);   %创建一个同样大小的全零矩阵,用来存储下面的图像
second = uint8(second); %将全零矩阵变为uint8格式,因为上面创建之后默认为double.
%平均值法      得到较为柔和的
for i = 1 : rows    %遍历行for j = 1: cols  %遍历列sum = 0;for k = 1 : colors %遍历三种颜色sum = sum + img(i,j,k)/3;  %进行转化,每次sum不能超过255endsecond(i,j) = sum;  %赋值给像素点end
end
%最大值法    得到亮度较高的
maxx = zeros(rows,cols); %创建一个同样大小的全零矩阵,用来存储下面的图像
maxx = uint8(maxx);   %将全零矩阵变为uint8格式,因为上面创建之后默认为double.
for i = 1 : rowsfor j = 1 : colsmaxx(i,j) = max(img(i,j,:));  %取最大值end
end
%加权平均值法转化的图像
jiaquan = zeros(rows,cols); %创建一个同样大小的全零矩阵,用来存储下面的图像
jiaquan = uint8(jiaquan);    %将全零矩阵变为uint8格式,因为上面创建之后默认为double.
for i = 1 : rowsfor j = 1 : colsjiaquan(i,j) = img(i,j,1) * 0.3 + img(i,j,2) * 0.3 + img(i,j,3) * 0.4; %加权求值end
end
imwrite(jiaquan,"加权图像.jpeg");%保存图像为加权图像.jpeg)
figure();
subplot(2,4,1),imshow(img),title("原图");
subplot(2,4,2),imshow(imgbw),title("取任意一维");
subplot(2,4,3),imshow(imgcrop),title("裁剪的图像");
subplot(2,4,4),imshow(first),title("内置函数");
subplot(2,4,5),imshow(second),title("平均值法");
subplot(2,4,6),imshow(maxx),title("最大值法");
subplot(2,4,7),imshow(jiaquan),title("加权");
subplot(2,4,8),imshow(imgcaijian),title("裁剪");

结果:

并且在当前目录保存了加权图像。


第一次基本入门就到此为止,路漫漫其修远兮,吾将上下而求索!

图像导入裁剪与灰度化相关推荐

  1. 数字识别java开源_Java基于opencv实现图像数字识别(三)—灰度化和二值化

    Java基于opencv实现图像数字识别(三)-灰度化和二值化 一.灰度化 灰度化:在RGB模型中,如果R=G=B时,则彩色表示灰度颜色,其中R=G=B的值叫灰度值:因此,灰度图像每个像素点只需一个字 ...

  2. (二)对图像进行预处理(灰度化,二值化)

    对图像进行预处理(灰度化,二值化) 一.图像灰度化处理 图像灰度化是指每个像素只有一个采样颜色的图像,这类图像通常显示为从最暗黑色到最亮的白色的灰度. 灰度图像与黑白图像不同,在计算机图像领域中黑白图 ...

  3. matlab 二值化图像反色,图像处理——灰度化、二值化、反色、饱和度、对比度...

    RGB RGB色彩模式使用RGB模型为图像中每个像素的RGB分量分配一个0~255范围内的强度值.RGB图像仅仅使用三种颜色,R(red).G(green).B(blue),就能够使它们依照不同的比例 ...

  4. opencv图像灰化_opencv读入图像、灰度化、归一化、向量化

    平台:win7+opencv2.4.4+vs2008 功能:实现对图像的读入.灰度化.归一化和向量化. 代码: //这里的头文件都是vs2008的,与vc6.0有多不同 #include #inclu ...

  5. [Python图像处理] 三十一.图像点运算处理两万字详细总结(灰度化处理、阈值化处理)

    该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门.OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子.图像增强技术.图像分割等,后期结合深度学习研究图像识别 ...

  6. 【OpenCV 例程200篇】37. 图像的灰度化处理和二值化处理

    [OpenCV 例程200篇]37. 图像的灰度化处理和二值化处理 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 按 ...

  7. Opencv读取文件夹连续图片,RGB分量显示,图像灰度化

    1.读取文件夹连续图片 刚开始学习图像处理,开始只能一次读入一张图片,今天从网上查了一些资料,自己写了一个可以连续读取多张图片函数. char filename[100];char windownam ...

  8. html5图片灰度显示,HTML5 组件Canvas实现图像灰度化

    HTML5发布已经有很长一段时间了,一直以来从来没有仔细的看过,过年刚来随便看看 发现HTML5中的Canvas组件功能是如此的强大,不怪很多牛人预言Flash已死,死不死 不是我要关心的,我关心的C ...

  9. Python-OpenCV 处理图像(七):图像灰度化处理

    为了加快处理速度,在图像处理算法中,往往需要把彩色图像转换为灰度图像. 0x00. 灰度图 灰度数字图像是每个像素只有一个采样颜色的图像,这类图像通常显示为从最暗黑色到最亮的白色的灰度. 灰度图像与黑 ...

  10. Python-OpenCV 处理图像(六)(七)(八):对象识别 图像灰度化处理 图像二值化处理

    为了加快处理速度,在图像处理算法中,往往需要把彩色图像转换为灰度图像. 0x00. 灰度图 灰度数字图像是每个像素只有一个采样颜色的图像,这类图像通常显示为从最暗黑色到最亮的白色的灰度. 灰度图像与黑 ...

最新文章

  1. windows7下解决caffe check failed registry.count(type) == 1(0 vs. 1) unknown layer type问题
  2. Matlab编程与数据类型 -- 循环控制语句之二:while/end
  3. 用结构体实现一个电话本
  4. kubernetes常用命令
  5. 当yum 遇到No more mirrors to try
  6. CentOS6虚拟机下面配置双网卡
  7. 实验7-3-3 统计大写辅音字母 (15分)
  8. sqlite 数据量_向SQLite批量导入csv,txt数据
  9. Flutter安装和踩坑指南(windows)
  10. 算法笔记_172:历届试题 波动数列(Java)
  11. HTML5 — 知识总结篇《V》【a元素】
  12. css中背景的应用及BFC与IFC应用
  13. vue实现点击复制文本功能
  14. TiDB 在中国电信翼支付的大规模深度实践
  15. 小甲鱼学python学习笔记
  16. 搞笑新闻联播之老公岗位制度(中)铃声 搞笑新闻联播之老公岗...
  17. Android中检测应用是否安装
  18. 21.12.8组合数
  19. 皇帝踏入31 克城冠军梦 时不我待
  20. 做设计这么久,UED/UXD、IXD、GUI到底是什么?你分清了吗

热门文章

  1. Python:运营自媒体,如何修改图片的MD5值
  2. 超好用的抠图软件:InPixio Photo Eraser mac版
  3. 抠图软件哪个好?这些软件值得收藏
  4. ERP原理:第二节 物料清单(BOM)
  5. 了解一下银行科技信息岗
  6. 计算机日志查询域用户登录记录,Windows域控制器身份验证登录日志记录和取证...
  7. 【物联大师】之物联网智能网关
  8. VS QT进行相机镜头控制软件二次开发
  9. 罚函数法约束函数优matlab,外点惩罚函数法matlab
  10. 2016/11/23【转载3】USB OTG 引脚定义