图像处理作业
- 格式:doc
- 大小:29.50 KB
- 文档页数:5
1、下图是一用于干涉原理进行测试的干涉场图像,要求判读条纹的间距,请给出图像处理的方案并说明每一步的作用及其对其它处理步骤可能产生的影响。
解:步骤与思路:○1.进行模糊处理,消除噪声○2.边缘检测,进行图像增强处理○3.二值化图像,再进行边缘检测,能够得到很清晰的边界。
○4.采用横向标号法,根据值为1像素在标号中的相邻位置可以确定间距I=imread('xz mjt.bmp');I1=medfilt2(I); %对图像中值滤波imshow(I1);[m,n]=size(I1);for i=1:mfor j=1:nif(I1(i,j)<100) %阈值为100I1(i,j)=255;elseI1(i,j)=0; %进行二值化endendendfigure;imshow(I1);Y1=zeros(1,25);y2=y1;c=y2;i=100;for j=1:1200if (I1(i,j)==255&&I1(i,j+1)==0)Y1=j+1;endif (I1(i,j)==0&&I1(i,j+1)==255)Y2=j;endendfor i=1:25c=Y2(i)-Y1(i)endc %找出每两个条纹之间的距离2. 现有8个待编码的符号m0,……,m7,它们的概率分别为0.11,0.02,0.08,0.04,0.39,0.05,0.06,0.25,利用哈夫曼编码求出这一组符号的编码并画出哈夫曼树。
3. 请以图像分割方法为主题,结合具体处理实例,采用期刊论文格式,撰写一篇小论文。
各种算子对图像进行边缘检测效果的研究图像分割是根据需要将图像划分为有意义的若干区域或部分的图像处理技术。
通过边缘检测在Matlab 中实现方法,及用四叉数分解函数进行区域分割的方法,掌握了Matlab 区域操作函数的使用和图像分析和理解的基本方法,并学到了'roberts','sobel','prewitt','canny','log'算子对图像进行边缘检测的不同效果。
photoshop图像处理第五次作业 1试卷总分:100 得分100注:请20分钟以内保存一次。
每大题完成后请先保存再更换大题,试卷试题全部完成后提交。
第1大题第2大题一、单项选择题(总分80.00)1.画笔工具的用法和喷枪工具的用法基本相同,唯一不同的是以下哪个选项()(4.00分)A. 模式B. 不透明度C. 湿边D. 笔触2.对一个图像文件的像素更改的比原来高时,则选项说法是不正确的。
( )(4.00分)A. 图像文件比原来大了B. 在同一台电脑上处理起来速度比原来要慢C. 图像的尺寸没有发生改变D. 图像的质量比原来要高3.下列关于背景层的描述哪个是正确的?( )(4.00分)A. 背景层不能转换为其它类型的图层B. 在图层调板上背景层是不能上下移动的,只能是最下面一层C. 背景层不可以执行滤镜效果D. 背景层可以设置图层蒙板4.下面对 Airbrush (喷枪工具)描述正确的是?()(4.00分)A. 喷枪工具喷出的颜色为工具箱中的背景色B. 喷枪工具隐藏在笔刷工具的选项栏中C. 喷枪工具是不能调整不透明度值的D. 喷枪工具是不能用于图层蒙板中的5.下列说法中,哪些是不正确的( )。
(4.00分)A. 用户不能改变动作中命令的执行方式B. 用户可在动作中的指定位置手动插入想要执行的菜单命令C. 在录制动作时不能录制绘制路径的操作D. 如果“动作”调板中的复选框中出现了红色图标,表示该动作中的部分命令包含了暂停操作6.只删除当前图象的所有历史记录,应当用下列哪个操作()(4.00分)A. 按住shift键并选择清除历史记录B. 按住ctrl键并选择清除历史记C. 选择历史记录面板上的清除历史记录D. 按住alt键并选择清除历史记录7.在色彩范围对话框中为了调整颜色的范围,应当调整哪一个数值()(4.00分)A. 羽化B. 反相C. 颜色容差D. 消除锯齿8.在磁性套索工具的选项栏中用来控制磁性套索工具生成固定点的多少。
题目:在RGB模式的图像中每个像素的颜色由R、G、B这3个数值来决定,每个数值的范围都是0到255。
当R、G、B数值分别为相等、均为255、均为0这3种不同情况时,最终的颜色分别是()。
选项A:偏色的灰色、纯白色、纯黑色选项B:偏色的灰色、纯黑色、纯白色选项C:灰色、纯黑色、纯白色选项D:灰色、纯白色、纯黑色答案:灰色、纯白色、纯黑色题目:CMYK模式的图像有()个颜色通道。
选项A:2选项B:3选项C:1选项D:4答案:4题目:下列哪个方法可以使左图变成右图的效果(左图为灰度模式图像)?/zyzx/video/nerc160_photoshoptxchl/images/p2-3-1.jpg选项A:通过“图像调整阈值”命令,调整阈值色阶数值选项B:通过“图像调整色调分离”命令,调整色阶数量选项C:将图像转化为位图模式图像,在位图对话框中选择“方法使用50%阈值”命令选项D:通过“图像调整色调均化”命令答案:通过“图像调整阈值”命令,调整阈值色阶数值题目:要关闭当前图像,可以按哪个键?选项A:Ctrl+W选项B:Ctrl+C选项C:Ctrl+D选项D:Ctrl+Shift+Esc答案:Ctrl+W题目:当双击放大镜的时候图像会以100%来显示,这个100%表示的是什么?选项A:表示一个屏幕像素对应一个图像像素选项B:表示全页显示选项C:表示全屏显示选项D:显示器中的图像大小与图像输出尺寸一致答案:表示一个屏幕像素对应一个图像像素题目:如图所示,当扫描得到较灰且不够清晰的线条稿时,需要将一些细节杂色过滤掉并加强线条的清晰度,请问使用下列哪种方法能够达到下图调整的结果?/zyzx/video/nerc160_photoshoptxchl/images/p2-3-2.jpg选项A:自动对比度选项B:亮度/对比度选项C:自动色阶选项D:阈值答案:亮度/对比度题目:色彩调整色阶命令中的灰色吸管的作用是?选项A:吸取颜色选项B:设置图像的中性灰选项C:设置图像的暗调选项D:设置图像的高光答案:设置图像的中性灰题目:Photoshop中如何才能以100%的比例显示图像?选项A:选择“视图屏幕大小缩放”命令选项B:双击缩放工具选项C:双击手形工具选项D:在图象上按住Option(Mac)/Alt(Win)的同时单击鼠标答案:双击缩放工具题目:如图所示,上图图像在转成CMYK模式后失去了图像原有的鲜艳度,请问使用下列哪种方法可以令图像恢复成下图所示的鲜艳度?/zyzx/video/nerc160_photoshoptxchl/images/t1.png选项A:图像调整亮度/对比度选项B:图像调整色相/饱和度选项C:图像调整曲线选项D:图像调整色阶答案:图像调整色相/饱和度题目:使用Photoshop调整图像色彩的调整命令中,哪一个可以做最精确的调整?选项A:曲线选项B:色阶选项C:色彩平衡选项D:色相/饱和度答案:曲线题目:在Photoshop中将前景色和背景色恢复为默认颜色的快捷键是()?选项A:Tab选项B:X选项C:Alt选项D:D答案:D题目:下列哪些途径可以对图像进行放大或缩小?选项A:在“导航器”面板中,拖动面板下方的三角形滑钮或直接在“导航器”面板左下角输入放大或缩小的百分比数值选项B:按住Command键Mac/Ctrl键Win,直接在“导航器”面板的预视图中用鼠标拖拉矩形块,可将图像放大选项C:在图像左下角的百分比显示框中直接输入放大或缩小的百分比数值选项D:用工具箱中的抓手工具在图像上拖拉矩形框可实现图像的放大答案:在“导航器”面板中,拖动面板下方的三角形滑钮或直接在“导航器”面板左下角输入放大或缩小的百分比数值, 在图像左下角的百分比显示框中直接输入放大或缩小的百分比数值, 按住Command键Mac/Ctrl键Win,直接在“导航器”面板的预视图中用鼠标拖拉矩形块,可将图像放大题目:如何将文档中的参考线清除?选项A:按住【Alt】键并单击参考线选项B:将该参考线拖移到图像窗口之外选项C:按下【Del】键删除选项D:选择“视图”“清除参考线”命令答案:将该参考线拖移到图像窗口之外, 选择“视图”“清除参考线”命令题目:下面对“色阶”命令描述正确的是()。
1.图像均值化2.图像的Gauss低通和Gauss高通3.对图像进行Gamma变化4.DCT变换,加上量化在反量化,和IDCT这四个题目,如果是对一些进行图像处理的程序员来讲或者很简单,但是我基本不接触图像处理这个方面的(虽然我头上挂着这个牌子),基本原理不同,很难写程序。
不过幸好我同学是搞这个方面的,而且他的讲解能让我很快的知道我应该怎么去处理这个图像,而且通过网络的搜索,我发现wiki上的讲解真的相当的精准阿...不带让人纠结的数学公式,也不会长篇大论,有的就是通俗易懂的步骤和例子。
让人很快能知道我应该怎么都作就能完成这个效果的处理。
这是我一直很喜欢使用wiki的原因,推荐推荐阿....对于这个作业我本打算以最大的速度做完的,也不想真的去对原理进行真正的了解!所以只要知道怎么去做就可以了。
突然想到了那几天前我好像也学习QT,所以想连着这个一起作一次练习。
qt一个gui做的不错的库!而且简单的很...既然使用了QT那就要求我使用C++来写这个程序,C++这个语言,很久很久没使用了,主要是觉得自己对C++好像很陌生了,或者可以说是对面向对象这个思想的陌生。
关于这点,我也很想提出我的一点点想法。
虽然很早就开始使用面向对象去编程,可是好像自己一直没有入门面向对象这种思想。
使用C++的过程好像是将C++当成C来使用,很少很少说一定要使用到类,继承,多态这种特性。
看了很多书说,要学好C++就要放弃一些东西,把面向对象的这些东西学好。
可是面向对象到底是一种什么样的思想呢,有的时候很想用面向对象的思想去写程序,可是有时候却发现自己好像是为了面向对象而面向对象...好似纠结....应该是我经历的还不够吧。
关于这个作业,我最想讲的两个方面是:1.qt中的QImage这个对象,为了能让内存高效的访问,qt通过空间去换取时间的方法来提升效率。
让每一行都能被4B整除,这就是让qt本身会对每一行进行填充的过程,所以将一个一维的图像数据的转换为QImage是一个要小心的过程。
博州校本部学习中心《数字与图像处理》2023春季学期数字与图像处理第
4次平时作业-100分
题1:形态学图像处理被广泛应用到图像系统的( )这一步骤中如去噪、使目标更平滑等,是图像处理很重要的处理方法。
A.预处理
B.后处理
C.平滑处理
D.去噪处理
正确答案:A
题2:形态学图像处理的基本思想是了解图像的()。
A.滤波特征
B.频谱特性
C.结构特征
D.性能特点
正确答案:C
题3:下列算法中属于点处理的是()。
A.梯度锐化
B.二值化
C.傅立叶变换
D.中值滤波
正确答案:B
题4:下列哪一个不是基于边缘的分割。
()
A.点检测
B.线检测
C.边缘检测。
数字图像处理1.图像工程的三个层次是指哪三个层次?各个层次对应的输入、输出对象分别是什么?①图像处理特点:输入是图像,输出也是图像,即图像之间进行的变换。
②图像分割特点:输入是图像,输出是数据。
③图像识别特点:以客观世界为中心,借助知识、经验等来把握整个客观世界。
“输入是数据,输出是理解。
2.常用的颜色模型有哪些(列举三种以上)?并分别说明颜色模型各分量代表的意义。
①RGB(红、绿、蓝)模型②CMY(青、品红、黄)模型③HSI(色调、饱和度、亮度)模型3.什么是图像的采样?什么是图像的量化?1.采样采样的实质就是要用多少点来描述一幅图像,采样结果质量的高低就是用前面所说的图像分辨率来衡量。
简单来讲,对二维空间上连续的图像在水平和垂直方向上等间距地分割成矩形网状结构,所形成的微小方格称为像素点。
一副图像就被采样成有限个像素点构成的集合。
例如:一副640*480分辨率的图像,表示这幅图像是由640*480=307200个像素点组成。
2.量化量化是指要使用多大范围的数值来表示图像采样之后的每一个点。
量化的结果是图像能够容纳的颜色总数,它反映了采样的质量。
针对数字图像而言:采样决定了图像的空间分辨率,换句话说,空间分辨率是图像中可分辨的最小细节。
量化决定了图像的灰度级,即指在灰度级别中可分辨的最小变化。
数字图像处理(第三次课)调用图像格式转换函数实现彩色图像、灰度图像、二值图像、索引图像之间的转换。
图像的类型转换:对于索引图像进行滤波时,必须把它转换为RGB图像,否则对图像的下标进行滤波,得到的结果是毫无意义的;2.用MATLAB完成灰度图像直方图统计代码设计。
6789101112131415161718192021222324252627282930title('lady-lenna');if isrgb(a);b=rgb2gray(a);%RGB转换为灰度图像endsubplot(2,2,2);imshow(b);%显示图像title('ladygaga-lenna');[m,n]=size(a);%返回图像大小e=zeros(1,256);for k=0:255for i=1:mfor j=1:nif a(i,j)==ke(k+1)=e(k+1)+1;%灰度值相同的进行累加endendendendsubplot(2,2,4);bar(e);%画图像的灰度直方图title('灰度直方图');c=imrotate(a,20);%图像的旋转subplot(2,2,3);imshow(c);数字图像处理(第四次课)编写matlab函数,实现在医学图像中数字减影血管造影。
新疆开放大学直属《数字与图像处理》2023春季学期数字与图像处理第2
次平时作业-100分
题1:下列哪一个不是数字图像处理的目的。
A.存储和传输
B.显示和打印
C.增强和恢复
D.可视化
正确答案:D
题2:下列算法中属于图象锐化处理的是:()
A.低通滤波
B.加权平均法
C.高通滤波
D.中值滤波
正确答案:C
题3:下列算法中属于局部处理的是:()
A.灰度线性变换
B.二值化
C.傅立叶变换
D.中值滤波
正确答案:D
题4:下列哪一项不是伪彩色图像增强的方法。
A.过滤法
B.密度切割法
C.灰度级-彩色变换
D.滤波法。
1. 写出至少3种图像平滑算法,说明每种方法的优、缺点和适用的情况。
1)均值滤波法:均值滤波是典型的线性滤波算法,它是指在图像上对目标像素给一个模板,该模板包括了其周围的临近像素(以目标象素为中心的周围8个像素,构成一个滤波模板,即去掉目标像素本身),再用模板中的全体像素的平均值来代替原来像素值。
优点:简单,易于操作。
缺点:它不能很好地保护图像细节,在图像去噪的同时也破坏了图像的细节部分,从而使图像变得模糊,不能很好地去除噪声点。
使用情况:适用于去除通过扫描得到的图像中的颗粒噪声。
2)中值滤波法:中值滤波法是一种非线性平滑技术,它将每一象素点的灰度值设置为该点某邻域窗口内的所有象素点灰度值的中值。
优点:可以清除孤立的噪声点,既能去除噪声,又能很好的保护边缘图像,得到比较满意的复原效果。
缺点:不适合处理细节多的图像。
使用情况:滤除图像的椒盐噪声。
3)加权平均滤波法::加权平均滤波是对移动平均滤波的改进,不同时刻采样的数据乘以不同的权,越接近现时刻的数据,权越大。
优点:即使图像中的噪声影响得到抑制,又不对图像的边界和细节有明显的影响。
缺点::对于纯滞后时间常数较小、采样周期较长、缓慢变化的信号,滤波效果差。
使用情况::该算法比较适用于有较大纯滞后时间常数的对象。
2. 说明直方图均衡化和直方图规定化的实现过程。
1)直方图均衡化实现步骤:(1)•列出原始图像的灰度级(fj)(2)统计各灰度级的像素数目(3)计算原始图像直方图各灰度级的频数(4)计算累积分布函数(5).应用以下公式计算映射后的输出图像的灰度级,P为输出图像灰度级的个数(gi)(6)统计映射后各灰度级的像素数目(7)计算输出直方图(8)用fj和gi的映射关系修改原始图像的灰度级,从而获得直方图近似为均匀分布的输出图像2)直方图规定化的实现步骤:令Pr(r)和Pz(z)分别为原始图像和期望图像的灰度概率密度函数,如果对原始图像和期望图像均作直方图均衡化处理,则有:£="2 [耿)dr(1)V = 二f E (z)dz z = (v)(2)(3)由于都是进行直方图均衡化处理,处理后的原图像概率密度函数 Ps (s )及期望图像的概率密度函数Pv (v )是相等的。
数字图像处理课后第⼀次作业1、完成课本习题3.2(a)(b), 课本中⽂版《处理》第⼆版的113页。
可以通过matlab 帮助你分析理解。
解:(a)s =T(r)=11+(m r ?)E其中,r 为输⼊图像亮度,s 为输出图像的相应亮度,E 控制该函数的斜率。
(b) L 是图像中灰度的级数,使m=L/2;若假定L=500,则m=250。
使⽤matlab 对E 分别为10,15,20,100时的情况进⾏分析,最后可得到如下结果:图1 matlab 分析结果2、⼀幅8灰度级图像具有如下所⽰的直⽅图,求直⽅图均衡后的灰度级和对应概率,并画出均衡后的直⽅图的⽰意图。
(计算中取整采⽤四舍五⼊⽅法,图中的8个不同灰度级对应的归⼀化直⽅图为[0.17 0.25 0.21 0.16 0.07 0.08 0.04 0.02])解:直⽅图均衡化的变换函数为s k =T (r k )=∑p r (r i )k i=0 0≤r k ≤1;k =0,1,…7 故可算得变化函数s 0计:s0计= T(r0)=0.17 s1计=0.17+0.25=0.42s2计=0.63 s3计=0.79s4计=0.86 s5计=0.94s6计=0.98 s7计=1.00但考虑到输出图像灰度是等间隔的,且与原图像灰度范围⼀样取8个等级,即要求s k=i/7(i=0,1,2,3…7)。
因此需要对s k计进⾏修正,采⽤四舍五⼊法可得s0并=1/7 s1并=3/7s2并=4/7 s3并=6/7s4并=6/7 s5并=1s6并=1 s7并=1根据s k并计算结果可知,直⽅图均衡化后的输出图像的灰度级仅为5个级别,即为s0=1/7 s1=3/7 s2=4/7 s3=6/7 s4=1且根据r k与s k的关联性,可计算得s k对应概率为:P s(s0=1/7)=0.17 P s(s1=3/7)=0.25P s(s2=4/7)=0.21 P s(s3=6/7)=0.23P s(s5=1)=0.14根据s k取值和对应概率,画出的均衡化后的直⽅图如下图所⽰:图2 均衡化后的直⽅图3. (选做题)课本习题3.6。
题目:两个同样的图层之间使用叠加模式,图像发生的变化是?选项A:反相选项B:变暗选项C:反差增大选项D:变亮答案:反差增大题目:图层样式中投影默认的混合模式为?选项A:变暗选项B:变亮选项C:滤色选项D:正片叠底答案:正片叠底题目:以下对调节图层描述错误的是选项A:调节图层可以选择与前一图层编组命令选项B:调节图层带有图层蒙版选项C:调节图层不能调节图层混合模式选项D:调节图层可以调整不透明度答案:调节图层不能调节图层混合模式题目:下列哪种图层混合模式为图层组所特有选项A:叠加选项B:滤色选项C:穿过选项D:正片叠底答案:穿过题目:下面对图层组描述正确的是:选项A:可以将所有链接图层放到一个新的图层组中选项B:在图层组内可以对图层进行删除和复制选项C:按住Command(Mac)/Ctrl(Win)键的同时用鼠标单击图层选项栏中的图层组,可以弹出"图层组属性"对话框选项D:在图层选项栏中单击"创建新组"按钮可以新建一个图层组答案:在图层选项栏中单击"创建新组"按钮可以新建一个图层组, 可以将所有链接图层放到一个新的图层组中, 在图层组内可以对图层进行删除和复制题目:若想增加一个图层,但在图层面板的最下面“创建新图层”的按钮是灰色不可选,原因是下列选项中的哪一个(假设图像是8位/通道)?选项A:图像是索引颜色模式选项B:图像是CMYK模式选项C:图像是灰度模式选项D:图像是双色调模式答案:图像是索引颜色模式题目:如图所示,有青(C=100,M=0,Y=0)、品红(C=0,M=100,Y=0)、黄(C=0,M=0,Y=100)三个圆圈,在不同的三个图层上,并互相重叠,请问选择何种图层混合模式会在重叠区出现如图所示的效果?/zyzx/video/nerc160_photoshoptxchl/images/test/pt3-1.png选项A:色相选项B:差值选项C:屏幕选项D:正片叠底答案:正片叠底题目:下列哪些方法可以产生新图层?选项A:使用文字工具在图象中添加文字选项B:单击图层调板下方的新图层按钮选项C:使用鼠标将图象从当前窗口中拖动到另一个图象窗口中选项D:双击图层控制调板的空白处,在弹出的对话框中进行设定选择新图层命令答案:单击图层调板下方的新图层按钮, 使用鼠标将图象从当前窗口中拖动到另一个图象窗口中, 使用文字工具在图象中添加文字题目:下列对背景层描述正确的是:选项A:始终在最底层选项B:不能隐藏选项C:不能改变其"不透明度"选项D:不能使用快速蒙版答案:始终在最底层, 不能改变其"不透明度"题目:以下关于调整图层的描述正确的是:选项A:调整图层可以在图层调板中更改透明度选项B:调整图层可以在图层调板中添加图层蒙版选项C:可通过创建"曲线"调整图层或者通过"图象>调整>曲线"菜单命令对图像进行色彩调整,两种方法都对图像本身没有影响,而且方便修改选项D:调整图层可以在图层调板中更改图层混合模式答案:调整图层可以在图层调板中更改透明度, 调整图层可以在图层调板中更改图层混合模式, 调整图层可以在图层调板中添加图层蒙版题目:欲把背景层转换为普通的图象图层,以下哪种做法是可行的?选项A:双击图层调板中的背景层,并在弹出的对话框中输入图层名称选项B:通过拷贝粘贴的命令可将背景层直接转换为普通图层选项C:背景层不能转换为其他类型的图层选项D:通过"图层"菜单中的命令将背景层转换为图层答案:通过拷贝粘贴的命令可将背景层直接转换为普通图层, 通过"图层"菜单中的命令将背景层转换为图层, 双击图层调板中的背景层,并在弹出的对话框中输入图层名称题目:对某图层执行自由变换命令时发现该命令为灰色显示,可能的原因是选项A:该图层为背景图层选项B:该图层与背景图层为链接关系选项C:该图层被锁定选项D:该图层位于图层组中答案:该图层被锁定, 该图层为背景图层题目:如图所示,下列关于“图层面板选项”对话框说法正确的是(____)。
图像处理作业安排
通过一段时间的学习,图像处理也基本入门了,大家对图像也应该有了一些概念了。
图像处理是很有意思的,但由于敝人实在口拙,很多相关知识可能没有讲解清楚,望大家见谅。
通过这次给大家讲解,使我对图像理解也更多,自己也得到了锻炼(口才、胆量等),对图像有疑问咱们尽管交流,现安排图像处理的一些作业以加深对图像的理解。
切记:编程前一定要先理解算法,多想想算法的思想,不要一味编程,否则,你收获到的仅是图像处理中编程的皮毛!
注:图像处理作业用VS2010+OpenCV2.4.7完成
作业一:OpenCV读图并显示。
作业二:统计一幅灰度图的直方图。
作业三:直方图均衡化增强。
作业四:中值滤波对图像去噪。
作业五:通过Sobel算子实现图像锐化。
作业六:图像镜像和图像放缩。
作业七:类间类内最大距离法实现图像分割。
作业八:对二值图实现做腐蚀和膨胀。
作业九:彩图由RGB转到HSV和YCbCr空间。
作业十:对视频做一个运动目标检测,但跟踪有点难(别急,慢慢来)。
实例一:OpenCV访问灰度图像素的常用三种方式:
----------------给一个固定阈值二值化--------------------------
Mat img=imread("C:\\Users\\Administrator\\Desktop\\002.bmp"); Mat img_gray;
cvtColor(img,img_gray,CV_RGB2GRAY); //彩图转为灰度图Mat img2(img_gray.rows,img_gray.cols,CV_8U);
///////////////////最简单的.at()函数///////////////////////////////////////////////////
////////////////////////不推荐此方式,太慢///////////////////////////////////////// int i,j;
for (i=0;i<img_gray.rows;i++)
{
for (j=0;j<img_gray.cols;j++)
{
if(img_gray.at<uchar>(i,j)>100)
img2.at<uchar>(i,j)=255;
else
img2.at<uchar>(i,j)=0;
}
}
/////////////////////////////指针访问///////////////////////////////////////////// int i,j;
uchar* pt;
for (i=0;i<img_gray.rows;i++)
{
pt=img_gray.ptr<uchar>(i); //获取第i行的首地址
for (j=0;j<img_gray.cols;j++)
{
if (pt[j]>100) //第i行的第j个像素
{
img2.at<uchar>(i,j)=255;
}
else
img2.at<uchar>(i,j)=0;
}
}
/////////////////////使用迭代器去访问//////////////////////////////////////////////
///////////////速度不是最快的,但是安全///////////////////////////////////////////// Mat_<uchar>::iterator it=img_gray.begin<uchar>(); //获得初始位置迭代器
Mat_<uchar>::iterator it1=img2.begin<uchar>();
while(it!=img_gray.end<uchar>())
{
if (*it>100)
{
(*it1)=255;
}
else
{
(*it1)=0;
}
++it;
++it1;
}
namedWindow("ff"); //创建窗口
imshow("ff",img2); //显示处理后的结果
//存图
imwrite("C:\\Users\\Administrator\\Desktop\\shiyan.bmp",img2);
waitKey(0); //等待按键
return 0;
}
总结,指针的方法是最快的;at()函数法最慢,但是理解起来方便;迭代器法居中,但是安全。
实例二:OpenCV访问彩图的每个像素,基本上同上,稍有不同。
-----------------------彩图转灰度---------------------------
Mat img=imread("C:\\Users\\Administrator\\Desktop\\002.bmp");
Mat img_gray(img.size(),CV_8UC1);
for(int i=0;i<img.rows;i++)
for(int j=0;j<img.cols;j++)
{
Mat img_gray.at<uchar>(i,j) =
0.114*img.at<Vec3b>(i,j)[0] //蓝色通道
+ 0.587*img.at<Vec3b>(i,j)[1] //绿色通道
+ 0.299*img.at<Vec3b>(i,j)[2]; //红色通道}
namedspace(“src”);
imshow(“src”,img);
namedspace(“gray”);
imshow(“gray”,img_gray);
彩图只用了一个at()去访问像素,还有其它两种方法,感兴趣可以去试一下。