第一篇:《摄影与图像处理初步》课程小结
《摄影与图像处理初步》课程小结
《摄影与图像处理初步》
《摄影与图像处理初步》是针对工科高等院校本科各专业开设的一门素质培养与基本技能的提高课程,以启迪智慧、培养富于人格健全、品性高尚、具有艺术修养和审美情趣的、能够全面和谐发展的人为培养目标。通过该学科的学习,使同学们了解图像时代的文化意义并掌握基本的摄影与图像处理理论与实践技能,同时,通过对摄影艺术作品的鉴赏品鉴,以因领悟人类对美追求的智慧为契机而开拓自己的生命视野,理解个体人的价值意义,从而丰富自己的生活趣味。
课程内容分摄影与图像处理两部分,其中摄影注重鉴赏与基本的摄影理论、相机原理同技法方面知识的介绍,课堂采用图像展示、师生共同讨论、实景拍摄等丰富形式,重在对图像文化意义的欣赏与批评能力的提高;图像处理就如满赛哥同学所说的,作为对摄影作品精神的重塑和意境的整合改造,其重要性当在艺术趣味的驱使下进行。课程重在介绍最简单的三款图像与视频工具(Acdsee,Adobe Photoshop,会声会影)的原理与基本的工具用途。
摄影与图像之于教育
教育的至高境界理应是提升人的敏觉,使其锐利而深入,当所有的知识都为着开拓人的生命境界,使之丰富与灵动时,知识才是真正有用而可爱的。也只有这样,才能启动生命中潜藏的灵性与颖悟。对图像作为视觉的直接的识读是人与生俱来的认识与表达,你决不陌生只会哭喊与纯粹地吟笑的婴儿是怎样获得快乐与表达他(她)的愤怒的,他们又是怎样用涂鸦的方式来抒写大人们难以理解的诗意呢?表达的冲动与记录的渴望源于人心灵的深处,是潜藏着的,也是一个人与生俱来的对美的珍惜与爱恋,这是人活着的表征与自我尊严本源性的需要。事实上,视觉是人通向自然与世界奥秘最为便利、最为直接而廉价的窗口,视觉的魅悟最易牵动潜意识思维,其逻辑有时来得
极为缜密。
科技的发展足以为我们提供丰富的手段,数码时代铺天盖地的来势与更新换代,改变了人类识读与记录的传统方式,图像与影像已然方便地侵入我们的生活。美国学者阿尔温·托夫勒在他的成名作《第三次浪潮》中预言岿然成为现实。(随着社会的演进和科技的发展,人类将产生“文字文化文盲、计算机文化文盲和影像文化文盲”。)21世纪被称之为“读图时代”。图像的原生性特征便于记录更为真实的现实场景,使文化的叙事变得更精微,更动人更便捷。亲近图像,就是亲近我们自身的表达。
摄影的独到之处,除了构图、用光等图像本身积聚着的、人类视觉的基本经验,而其作为必要的硬件要求之外,观其艺术水平高低的,其最为精微之处许是摄影者独到的视角了,而这视角是其综合素质的亦然展现。摄影者对所摄对象的趣味来自心灵深处瞬间所生发的灵感,或者说是具有诗性的直觉倾向而激发的记录需要的冲动,这是个人内在的审美情节、价值指向、爱恨冲突„„等的综合释放。视觉作为工具性有其易疲劳与“懒惰”性,疲劳是其用之广、正因其广视觉才以最高的效率应对大脑所指使的关注对象,因时空的重复而麻木,也就造就了其“懒惰”,作为摄影者所培养的是一双艺术的视觉,不断使其超越工具的用途进而传达心灵与自然的交流所生发的动人之“境”,这也就是俗话说的要拍出“看不见”的景致。这“看不见”实非无视,而是能够激活麻木了的视觉惯性,使熟视无睹的东西焕发出其本来的生命力,恢复其灵性。发现的过程以丰富人作为“人”的荣誉与尊严而使人产生巨大的快感。
因之,摄影不单是一个时代里人们方便使用的工具性结果,更应据其无限的可能性而发现与表达自己、丰富自己,明证存在的欢欣。
如果你有足够的兴趣,就在摄影的名义下来与我们共历一次心灵的视像吧。
作品与作者
对于课程,我依据的原则是只将摄影与做图软件的原理作以讲解,让同学们学会在最短的时间里琢磨相机与软件能够被自己控制的可能性,同时将
历史名作、当代青年的创意作品与同学作品深入细致的分析与讨论,以提高视觉鉴赏力与对艺术作品的批评能力;在对于同学的创作作品,只是大体提出主题创作的方向,这样更易于使课堂具有开放性的特点,使同学们的创造力与创作效率得以开发与提高。根据同学的作品,可以说这样的目标与方法的行之有效。可以看作是一次对同学综合素质的测评,从创作作品中,可以从以下几个方面去去认识这些素质与能力。
首先,艺术气质与独具创意使我们相信因年轻所满溢的激情与丰富的想象力。请看李兆丹与张倩同学作品《如果我们哭泣,我们就会生锈》的创作说明:
我们想在作品中表现的是一个叛
逆的少年。
她被定义为一个少年。
她非常自我,不在乎世人的眼光。
她的行为异常成熟,但仍然是一个小
孩。她抽很烈的烟,她的生活是由许
多她不停的穿梭于其中的场景交织而
成的,她的记忆是有关于她或许多其
他的苍白情节。突然有一天她发现交
流让人失望,于是她不再与人交流。
她放纵自己,让许多东西变成了各种
疼痛,于是她终于麻木了。很多时候,她是冰冷的,却有着黑洞般深不可测的魔幻般的魅力。
她的形成隐藏着许多故事。她的绝望让她的眼泪干枯,她不再哭泣,因为她已经渐渐生锈,失去了所有感
知。
开始我们打算做的是朋克主题
主体的东西,后来又打算加以{LOLITA}的形象来完成作品,表现出一种叛逆
和绝望,为了表现人物更深层次的内心的纠结和刺入匕首般的痛,又加入了
点歌特的东西。总之,我们表现的是人物本身的个体性以及其更多内心的东
西。
毫无疑问,他们所透露的艺术气
质并不需要过多的剖析,忧伤而凄美。
在鲍远的作品《季节》、刘旭的《记忆的橱窗》里,透视出作者对时间意义的深刻洞察力与图像表达的驾驭能力,他的摄影技巧恰如其分地诠释了主题,作
品纯净而清醇;我们虽然不打算重复解
释那句“人人都是艺术家”的老掉牙的训示,但在同学们的作品中,我确实真
切地体会到这种艺术气质的热烈与真
诚。这种潜藏在每个人内心深处的潜能
只要在合适的土壤里,他就会展示其强大的生命力。这是促使我改变单纯的科类观念而进入尊重个人内心经验与探索无差别的、更为开放、更为丰富与更加人性的艺术教育的信心,这是起点也是方向。艺术气质总是隐含在同学们恰切的主题设计与娴熟的技术制作中,与鲍远一样,很多同学对季节的流徙有着深刻地敏感,尤其是绚丽的秋色似乎更能诱惑心灵,这是自然的时序以最为辉煌的的色彩献给生命的礼物,我们充满着朴素的感恩。杜秀的《盛夏光年——我的2007》、胡伟伟的《叶落秋痕》、钱惠增的《昌平公园》、赵超的《九寨》、宋健(地质)的《恋之风景·秋思》杨俊的《醉人深秋》、袁朝晖《绚烂的秋》等一大批同学的作品都在这样的境遇里统感了心物幽游的快乐;当然,大学生活以为最为切近的生活体验而成为很多同学的摄影主题,王玉萍与孙齐合作的《小蜜蜂和大黄蜂》、黄雯的《记忆》在更大的可能性上追求生活的私密世界里活跃着的童话情趣,作品生动而制作精良,陆骋和唐晓倩合作的《我们的宿舍》温馨而浪漫,吉妹的《茉莉花开》、范方超的《家乡·大学》、王聪《我的大学生活》、刘璐玮《那些生命中温暖而美好的事情》、肖露莎的《大学生活点滴》等等,倾向于这两个主题的同学占到百分之九十
多,这些作品因生活的细节精微、内容生动而感人;另一部分同学则对文化、文明等主题情有独钟,或者是对文化现象的宏观表达,或是对日新月异的城市变迁中渐失的记忆的追寻,亦或对新景象的敏感把握,如鲁阳的《798艺术工厂》、刑慧敏《古老的文明·人与自然》、段测的《古镇》、卜蔚达《我的摄影》等。很遗憾地,我不能一一例举每个同学的作品,上面只是为了分类的方便,粗略地以一些同学的作品举例。就如同学自己所说的,所感的,当你们被自己的创作作品所震惊所欢悦的时候,我依然能够幸运地和你们共享快乐,我如此真切地体味你们的创造力与掌握技能的高效。三个班一百多人的作品我反复地欣赏,每每有一种冲动,能够让这些作品与全校同学见面,让他们也能与我们共同体验创作的欢畅。如果这不是个人一厢情愿的矮情诉说,在现实的条件里,我准备先把作品拷贝到学校FTP资源库(http://.cn/ozhxh)共同探讨、共同学习,并请你下宝贵的意见。
第二篇:图像处理实验教学小结
实验一:通过学习Matlab的开发环境、基本语法和函数,使学生基本熟悉了Matlab的使用方法、开发规则和基本技巧,同时,通过上机独立练习Matlab图像处理的实例,进一步巩固了所学内容,为后续的Matlab图像处理课程,提供了保证。
实验二:通过本次课程的学习和实践,使学生对Matlab的图像编码知识有了全面深入的掌握,对Matlab的图像处理方法有了深入的理解和认识,并进一步熟悉了Matlab的基本语法和程序设计流程,为独立开发图像处理程序奠定了良好的基础。
实验三:本次课程是医学图像实习的最后一次实习课,通过本次课程的学习和实践,使学生基本掌握了平滑滤波、中值滤波、sobel算子和laplacian算子应用方法,同时,进一步熟悉和掌握了在Matlab下,图像模板运算的方法和技巧。
大部分学生能够在老师的指导下,独立完成设计工作,并完整正确运行程序,得到正确结果,但有部分学生由于录入速度较慢,没有在课堂完成代码录入工作,安排其在课后完成剩余部分的录入工作,并能够正确运行。
第三篇:matlab图像处理小结
1.function [center, r] = solve_circle(pt1, pt2, pt3)
2.%Effect: solve the circle which across points 'pt1', 'pt2' and 'pt3' 3.%Inputs:
4.%pt1, pt2, pt3: [x, y]
5.%center: the circle center [x0;y0] 6.%r: the radius of the circle 7.%Author: Su dongcai at 2012/1/2 8.A = zeros(2, 2);B = zeros(2, 1);9.[A(1, :), B(1)] = circle2line(pt1, pt2);10.[A(2, :), B(2)] = circle2line(pt2, pt3);11.center = AB;
12.r = norm(pt1'(y2^2 + y2^2)18.%(a-x2)^2 +(b-y2)^2 = r^2 | 19.%Inputs:
20.%pt1, pt2: [x1, y1], [x2, y2] 21.%Outputs:
22.%A: 2[x1-x2, y1-y2]
23.%B:(x1^2 + y1^2)pt2);
26.B = norm(pt1)^2-norm(pt2)^2;
close all;clear;clc;>> i=imread('rice.png');%>> imshow(i);>> background=imopen(i,strel('disk',15));>> i2=imsubtract(i,background);%>> figure,imshow(i2);>> i3=imadjust(i2,stretchlim(i2),[0 1]);%>> figure,imshow(i3);>> level=graythresh(i3);>> bw=im2bw(i3,level);%>> figure,imshow(bw);>> [labeled,numobjects]=bwlabel(bw,4);graindata=regionprops(labeled,'all');
close all;clear;clc;i=imread('rice.png');background=imopen(i,strel('disk',15));i2=imsubtract(i,background);i3=imadjust(i2,stretchlim(i2),[0 1]);level=graythresh(i3);bw=im2bw(i3,level);[labeled,numobjects]=bwlabel(bw,4);data=regionprops(labeled,'all');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %2006.6.2 close all;clear;clc;>> i=imread('r.jpg');%>> figure,imshow(i);>> imgray=rgb2gray(i);>> figure,imshow(imgray)>> background=imopen(imgray,strel('disk',15));>> i2=imsubtract(imgray,background);%>> figure,imshow(i2);>> i3=imadjust(i2,stretchlim(i2),[0 1]);%>> figure,imshow(i3);>> level=graythresh(i3);>> bw=im2bw(i3,level);%>> figure,imshow(bw);>> imnobord=imclearborder(bw,4);%>> figure,imshow(imnobord);>> [labeled,numobjects]=bwlabel(bw,4);>> rgb_label=label2rgb(labeled,@spring,'c','shuffle');>> figure,imshow(rgb_label);>> graindata=regionprops(labeled,'all');hold on;for k=1:numobjects lab=sprintf('%d',k);text(graindata(k).Centroid(1),graindata(k).Centroid(2),lab,'Color','k');end hold off;%剔除碎米粒
>> idxdown=find([graindata.Area]<150);%剔除碎米粒 little=ismember(labeled,idxdown);figure,imshow(little);
[lab_little,num_little]=bwlabel(little,4);rgb_little=label2rgb(lab_little,@spring,'c','shuffle');figure,imshow(rgb_little);
little_data=regionprops(lab_little,'all');hold on;for k=1:num_little lab=sprintf('%d',k);text(little_data(k).Centroid(1),little_data(k).Centroid(2),lab,'Color','k');end hold off;%>> graindata(idxdown,:)=[];%剔除碎米粒 %剔除连接米粒
>> idxup=find([graindata.Area]>250);%剔除连接米粒 big=ismember(labeled,idxup);figure,imshow(big);
[lab_big,num_big]=bwlabel(big,4);rgb_big=label2rgb(lab_big,@spring,'c','shuffle');figure,imshow(rgb_big);
big_data=regionprops(lab_big,'all');hold on;for k=1:num_big lab=sprintf('%d',k);text(big_data(k).Centroid(1),big_data(k).Centroid(2),lab,'Color','k');end hold off;%>> graindata(numup,:)=[];%剔除连接米粒 %获取完整米粒
idxsuit=find([graindata.Area]>=150&[graindata.Area]<=250);suit=ismember(labeled,idxsuit);figure,imshow(suit);%获取完整米粒 [lab_suit,num_suit]=bwlabel(suit,4);suit_data=regionprops(lab_suit,'all');hold on;for k=1:num_suit signature=sprintf('%d',k);text(suit_data(k).Centroid(1),suit_data(k).Centroid(2),signature,'Color','r');end hold off;%获取完整米粒 whos graindata whos little_data whos big_data whos suit_data
>> graindata >> mean([graindata.Area])>> mean([graindata.Eccentricity])>> mean([graindata.MajorAxisLength])>> mean([graindata.MinorAxisLength])>> mean([graindata.EquivDiameter])>> figure,hist([graindata.Area],20);>> figure,hist([graindata.Eccentricity],20);>> figure,hist([graindata.MajorAxisLength],20);>> figure,hist([graindata.MinorAxisLength],20);>> figure,hist([graindata.EquivDiameter],20);
data=[graindata.Area] data=[graindata.Centroid] data=[graindata.BoundingBox] data=[graindata.SubarrayIdx] data=[graindata.MajorAxisLength] data=[graindata.MinorAxisLength] data=[graindata.Eccentricity] data=[graindata.Orientation] data=[graindata.ConvexHull] data=[graindata.ConvexImage] data=[graindata.ConvexArea] data=[graindata.Image] data=[graindata.FilledImage] data=[graindata.FilledArea] data=[graindata.EulerNumber] data=[graindata.Extrema] data=[graindata.EquivDiameter] data=[graindata.Solidity] data=[graindata.Extent] data=[graindata.PixelIdxList] data=[graindata.PixelList]
Area 计算各个连通区域中的象素总数 BoundingBox 包含相应区域的最小矩形 Centroid 给出每个区域的质心
MajorAxisLength 与区域具有相同标准二阶中心矩(又叫标准差)的椭圆的长轴长度 MinorAxisLength 与区域具有相同标准二阶中心矩的椭圆的短轴长度 Eccentricity 与区域具有相同标准二阶中心矩的椭圆的离心率
Orientation 与区域具有相同标准二阶中心矩的椭圆的长轴与x轴的交角 Image 二值图像,与某区域具有相同大小的逻辑矩阵。
FilledImage 与上相同,唯一区别是这是个做了填充的逻辑矩阵!本例中和上面的没有区别,只有 区域有空洞时才有明显差别。
FilledArea 是标量,填充区域图像中的 on 像素个数
ConvexHull 是p行2列的矩阵,包含某区域的最小凸多边形 ConvexImage 二值图像,用来画出上述的区域最小凸多边形 ConvexArea 是标量,填充区域凸多边形图像中的 on 像素个数 EulerNumber 等于图像中目标个数减去这些目标中空洞的个数 Extrema 8行2列矩阵,八方向区域极值点
EquivDiameter 是标量,等价直径:与区域具有相同面积的圆的直径.计算公式为:sqrt(4*Area/pi)
Solidity 是标量,同时在区域和其最小凸多边形中的像素比例。计算公式为: Area/ConvexArea,这也是个仿射特征,实际上反映出区域的固靠性程度。
Extent 是标量,同时在区域和其最小边界矩形中的像素比例。计算公式为:Area除以边界矩 形面积,这也是个仿射特征,实际上反映出区域的扩展范围程度。
PixelIdxList p元向量,存储区域像素的索引下标
PixelList p行ndims(L)列矩阵,存储上述索引对应的像素坐标 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 基于特定原则的区域选择
当你要基于特定准则条件选择某个区域时,将函数 ismember 和 regionprops 联合使用是很有用处的。例如:创建一个只包含面积大于80的二值图像,用以下命令
idx = find([stats.Area] > 80);BW2 = ismember(L,idx);regionprops函数的扩展思路
在regionprops函数的基础上,你可以使用它提供的基本数据来扩展它的功能,比如我就将区域的曲率数据和骨架数据作为它的另外属性值来开发,从而希望它能用来做更细致的特征提取。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %2006.6.2 P221图像粒度测定(雪花)>> i=imread('snowflakes.png');>> figure,imshow(i);>> %(2)>> clahei=adapthisteq(i,'numtiles',[10 10]);>> clahei=imadjust(clahei);>> imshow(clahei);>> gi=imadjust(im2double(i),[],[0 1]);>> figure,imshow(gi),title('adjusted grayscale image');>> %(3)>> se=strel('disk',10);>> topi=imtophat(gi,se);>> figure,imshow(topi),title('top-hat image');>> %(4)>> for counter=0:22 remain=imopen(clahei,strel('disk',counter));intensity_area(counter+1)=sum(remain(:));end >> figure,plot(intensity_area,'m-*'),grid on;>> title('sum of opening(pixels)');>> title('sum of opening values in opened image as a function of radius');>> xlabel('radius of opening(pixels)');>> ylabel('pixel value sum of opened objects(intensity)');>> >> >> >> for counter=0:20 remain=imopen(topi,strel('disk',counter));surfarea(counter+1)=sum(remain(:));end >> figure,plot(surfarea,'m-*'),grid on;>> set(gca,'xtick',[0 2 4 6 8 10 12 14 16 18 20]);>> title('surface area of opened objects as a function of radius');>> xlabel('radius of opening(pixels)');>> ylabel('surface area of opened objects(pixels)');>> %(5)>> intensity_area_prime=diff(intensity_area);>> figure,plot(intensity_area_prime,'m-*'),grid on;>> title('Granulometry(size distrubution)of snowflakes');>> set(gca,'xtick',[0 2 4 6 8 10 12 14 16 18 20 22]);>> xlabel('radius of snowflakes(pixels)');>> ylabel('sum of pixel values in snowflakes as a function of radius');>> derivsurfarea=diff(surfarea);>> figure,plot(derivsurfarea,'m-*'),grid on;>> title('granulometry(size distribution)of stars');>> xlabel('radius of stars(pixels)');>> ylabel('loss of pixels between two successive openings');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %2006.6.2 花椒检测 clc;clear;close all;i=imread('gj.jpg');imshow(i);icanny=edge(i,'canny');imshow(icanny);se90=strel('line',2,90);se0=strel('line',2,0);bwsdil=imdilate(icanny,[se90 se0]);figure,imshow(bwsdil),title('dilated');ifill=imfill(bwsdil,'holes');figure,imshow(ifill);
%bwero=imerode(bwsdil,[se90 se0]);%figure,imshow(bwero);%i2fill=imfill(bwero,'holes');%figure,imshow(bwero);%imshow(i2fill);
%bwnobord=imclearborder(bwsdil,4);%figure,imshow(bwnobord);bwnobord=imclearborder(ifill,4);figure,imshow(bwnobord);se=strel('disk',5);bwc=imclose(bwnobord,se);bwco=imopen(bwnobord,se);figure,imshow(bwc);figure,imshow(bwco);%mask=bwsdil&bwco;%figure,imshow(mask);clc [labeled,numobjects]=bwlabel(bwco);numobjects
jdata=regionprops(labeled,'all');%jdata
jarea=[jdata.Area];mean(jarea)max(jarea)min(jarea)hist(jarea,255)jdata.Eccentricity %std([jdata.Eccentricity])/(Mean([jdata.Eccentricity])jstd=std([jdata.Eccentricity])jmean=Mean([jdata.Eccentricity])jcv=jstd/jmean
>> std([jdata.Area])/ mean([jdata.Area])%面积的变异系数
>> std([jdata.Eccentricity])/ mean([jdata.Eccentricity])%椭圆的变异系数 >> std([jdata.MajorAxisLength])/ mean([jdata.MajorAxisLength])>> std([jdata.MinorAxisLength])/ mean([jdata.MinorAxisLength])>> std([jdata.EquivDiameter])/ mean([jdata.EquivDiameter])
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %2006.06.06 rice.png close all;clear;clc >> i=imread('rice.png');imshow(i);background=imopen(i,strel('disk',15));figure,imshow(background);i2=imsubtract(i,background);figure,imshow(i2);i3=imadjust(i2,stretchlim(i2),[0 1]);figure,imshow(i3);level=graythresh(i3);bw=im2bw(i3,level);figure,imshow(bw);imnobord=imclearborder(bw);[label,numobjects]=bwlabel(imnobord,4);numobjects rgb_label=label2rgb(label,@spring,'c','shuffle');figure,imshow(rgb_label);graindata=regionprops(label,'all');graindata
>> numdown=find([graindata.Area]<150);>> graindata(numdown,:)=[];>> numup=find([graindata.Area]>250);>> graindata(numup,:)=[];>> graindata
>> std([graindata.Area])/ mean([graindata.Area])%面积的变异系数
>> std([graindata.Eccentricity])/ mean([graindata.Eccentricity])%椭圆的变异系数
>> std([graindata.MajorAxisLength])/ mean([graindata.MajorAxisLength])>> std([graindata.MinorAxisLength])/ mean([graindata.MinorAxisLength])>> std([graindata.EquivDiameter])/ mean([graindata.EquivDiameter])%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %2006.06.06 rice的垩白度检测 >> clear;close all;clc;>> rgb=imread('r.jpg');>> close all;>> imshow(rgb);>> i=rgb2gray(rgb);>> j=medfilt2(i,[5 5]);>> figure,imshow(i);>> figure,imshow(j);>> imhist(j,256);>> t=0.3;>> v=imadjust(j,[t 1],[],1);>> imhist(v,256);>> t_c=0.6;>> bw_v=im2bw(v,0.01);>> chalk=imadjust(v,[t_c 1],[],1);>> bw_chalk=im2bw(chalk,0.01);>> figure,imshow(v);>> figure,imshow(bw_v);>> figure,imshow(chalk);>> figure,imshow(bw_chalk);>> degree_chalkness=bwarea(bw_chalk)/bwarea(bw_v)*100 >> bw=im2bw(j,t);>> figure,imshow(bw);>> se=(ones(3,3));>> bw1=imerode(bw,se);%两次腐蚀 >> figure,imshow(bw1);>> bw2=imerode(bw1,se);>> figure,imshow(bw2);
>> [l,num]=bwlabel(bw2);%标记腐蚀后的大米图像 >> t_chalk=100;%设置垩白面积的下限 >> compare=(l)&(chalk>t_chalk);%>> compare=(bw2)&(bw_chalk>t_chalk);>> [r,c]=find(compare);%标记垩白米粒的位置 >> result=bwselect(l,c,r);%显示只含有垩白米粒的图像 >> figure,imshow(result);
>> [l_chalk,num_chalk]=bwlabel(result);%标记垩白米粒图像,便于计数 >> rate_chalky_grains=num_chalk/num*100;>> rate_chalky_grains
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %2006.6.17 bwmorph函数 >> help bwmorph BWMORPH Perform morphological operations on binary image.BW2 = BWMORPH(BW1,OPERATION)applies a specific morphological operation to the binary image BW1.BW2 = BWMORPH(BW1,OPERATION,N)applies the operation N times.N can be Inf, in which case the operation is repeated until the image no longer changes.OPERATION is a string that can have one of these values: 'bothat' Subtract the input image from its closing 'bridge' Bridge previously unconnected pixels 'clean' Remove isolated pixels(1's surrounded by 0's)'close' Perform binary closure(dilation followed by erosion)'diag' Diagonal fill to eliminate 8-connectivity of background 'dilate' Perform dilation using the structuring element ones(3)'erode' Perform erosion using the structuring element ones(3)'fill' Fill isolated interior pixels(0's surrounded by 1's)'hbreak' Remove H-connected pixels 'majority' Set a pixel to 1 if five or more pixels in its 3-by-3 neighborhood are 1's 'open' Perform binary opening(erosion followed by dilation)'remove' Set a pixel to 0 if its 4-connected neighbors are all 1's, thus leaving only boundary pixels 'shrink' With N = Inf, shrink objects to points;shrink objects with holes to connected rings 'skel' With N = Inf, remove pixels on the boundaries of objects without allowing objects to break apart 'spur' Remove end points of lines without removing small objects completely.'thicken' With N = Inf, thicken objects by adding pixels to the exterior of objects without connected previously unconnected objects 'thin' With N = Inf, remove pixels so that an object without holes shrinks to a minimally connected stroke, and an object with holes shrinks to a ring halfway between the hold and outer boundary 'tophat' Subtract the opening from the input image
Class Support-------------The input image BW1 can be numeric or logical.It must be 2-D, real and nonsparse.The output image BW2 is logical.Examples--------BW1 = imread('circles.png');imview(BW1)BW2 = bwmorph(BW1,'remove');BW3 = bwmorph(BW1,'skel',Inf);imview(BW2)imview(BW3)
See also erode, dilate, bweuler, bwperim.Reference page in Help browser doc bwmorph
BW1 = imread('circles.png');figure,imshow(BW1)BW2 = bwmorph(BW1,'erode');figure,imshow(BW2)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %边界提取 b=bwmorph(bw,'remove');b=bwperim(bw,8);%又叫边界象素测定 b=edge(bw,'canny');%又叫边界提取 %去除孤立象素点
nosinglepixel=bwmorph(bw,'clean');%去除小面积物体
nosmall=bwareaopen(bw,CNN);%阈值处理再取反
bw=~im2bw(i,graythresh(i));
%开运算(消除小物体)与闭运算(填充物体内细小空洞)se=strel('disk',6);iopen=imopen(bw,se);iclose=imclose(bw,se);%腐蚀与膨胀联合操作 %(1)创建结构元素 se=strel('rectangle',[40 30]);%(2)使用结构元素腐蚀图像 bw1=imread('circbw.tif');bw2=imerode(bw1,se);imshow(bw2);%(3)逆操作,回复矩形原来大小 bw3=imdilate(bw2,se);figure,imshow(bw3);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %2006.6.18花椒子
%直接对灰度图进行canny运算 >> i=imread('nut.bmp');>> figure,imshow(i);>> ig=rgb2gray(i);>> figure,imshow(ig);%igcanny=edge(ig,'canny');%igcfill=imfill(igcanny,'hole');igcanny_thresh=edge(ig,'canny',(graythresh(ig)*.1));igcfill=imfill(igcanny_thresh,'hole');>> figure,imshow(igcfill);
%先对灰度图滤波,再进行canny运算
>> imed=medfilt2(ig);%中值滤波后对图像边界有一定的损伤!!>> imedcanny=edge(imed,'canny');>> imedfill=imfill(imedcanny,'hole');>> figure,imshow(imedfill);>> nosmall=bwareaopen(imedfill,150);>> figure,imshow(nosmall);
%注意:若对灰度图像先拉氏锐化,在canny提取边界,效果不大好!!%结论:无需拉氏锐化,也不必中值滤波,可直接canny提取边界!!>> ifill=igcfill|imedfill;>> figure,imshow(ifill);>> nosmall=bwareaopen(ifill,150);>> figure,imshow(nosmall);
%当t=0.55时,阈值处理再canny运算的效果 >> imhist(ig);>> t=0.55;>> v=imadjust(ig,[0 t],[],1);>> vcanny=edge(v,'canny');>> vfill=imfill(vcanny,'hole');>> figure,imshow(vfill);>> ifill=igcfill|vfill;>> figure,imshow(ifill);>> nosmall=bwareaopen(ifill,150);>> figure,imshow(nosmall);
%当t=0.6时,阈值处理再canny运算的效果的效果 >> t=0.6;>> v=imadjust(ig,[0 t],[],1);>> vcanny=edge(v,'canny');>> vfill=imfill(vcanny,'hole');>> figure,imshow(vfill);>> ifill=igcfill|vfill;>> figure,imshow(ifill);>> nosmall=bwareaopen(ifill,150);>> figure,imshow(nosmall);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %处理花椒子
>> i=imread('nut.bmp');%figure,imshow(i);ig=rgb2gray(i);figure,imshow(ig);>> imed=medfilt2(ig);imedcanny=edge(imed,'canny');imedfill=imfill(imedcanny,'hole');%figure,imshow(imedfill);nosmall=bwareaopen(imedfill,150);>> figure,imshow(nosmall);>> [labeled,numobjects]=bwlabel(nosmall,4);>> rgb_label=label2rgb(labeled,@spring,'c','shuffle');%>> figure,imshow(rgb_label);>> nutdata=regionprops(labeled,'all');>> min([nutdata.Solidity])
>> rectangle('Position', [253.5000 207.5000 26.0000 28.0000])%画矩形
>> rectangle('Position', [250.5000 50.5000 27.0000 26.0000])>> figure,imshow(nutdata(1).Image)%只显示1号物体的图像
>> figure,imshow(nutdata(1).ConvexImage)%画出1号物体的凸多边形 >> std([nutdata.Eccentricity])/ mean([nutdata.Eccentricity])std([nutdata.Area])/ mean([nutdata.Area])std([nutdata.Solidity])/ mean([nutdata.Solidity])>> std([nutdata.Centroid])/ mean([nutdata.Centroid])std([nutdata.MajorAxisLength])/ mean([nutdata.MajorAxisLength])std([nutdata.MinorAxisLength])/ mean([nutdata.MinorAxisLength])std([nutdata.Orientation])/ mean([nutdata.Orientation])std([nutdata.EquivDiameter])/ mean([nutdata.EquivDiameter])std([nutdata.Extent])/ mean([nutdata.Extent])std([nutdata.Extrema])/ mean([nutdata.Extrema])
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %处理花椒皮 close all;clc;clear;>> i=imread('p.bmp');imshow(i);ig=rgb2gray(i);figure,imshow(ig);imed=medfilt2(ig);imedcanny=edge(imed,'canny');figure,imshow(imedcanny);>> se90=strel('line',2,90);se0=strel('line',2,0);bwsdil=imdilate(imedcanny,[se90 se0]);figure,imshow(bwsdil),title('dilated');ifill=imfill(bwsdil,'holes');figure,imshow(ifill);>> bwero=imerode(ifill,[se90 se0]);>> figure,imshow(bwero);>> nosmall=bwareaopen(bwero,150,4);>> figure,imshow(nosmall);>> nobord=imclearborder(nosmall,4);>> figure,imshow(nobord);>> [labeled,numobjects]=bwlabel(nobord,4);>> numobjects >> pdata=regionprops(labeled,'all');>> max([pdata.Solidity])>> std([pdata.Solidity])/mean([pdata.Solidity])
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %处理混合图像 >> clear;clc;close all;>> i=imread('m.bmp');%>> figure,imshow(i);>> ig=rgb2gray(i);figure,imshow(ig);imed=medfilt2(ig);%>> figure,imshow(imed);imedcanny=edge(imed,'canny');%>> figure,imshow(imedcanny);>> se90=strel('line',2,90);se0=strel('line',2,0);bwsdil=imdilate(imedcanny,[se90 se0]);%figure,imshow(bwsdil),title('dilated');ifill=imfill(bwsdil,'holes');%figure,imshow(ifill);bwero=imerode(ifill,[se90 se0]);%figure,imshow(bwero);>> nosmall=bwareaopen(bwero,150,4);%figure,imshow(nosmall);nobord=imclearborder(nosmall,4);figure,imshow(nobord);>> [labeled,numobjects]=bwlabel(nobord,4);>> numobjects >> rgb_label=label2rgb(labeled,@spring,'c','shuffle');figure,imshow(rgb_label);>> mexdata=regionprops(labeled,'all');hold on;%以下内容画在同一figure中 centr=[mexdata.Centroid];%寻找重心位置 nums=1:numobjects;for k = 1:numobjects soli=mexdata(k).Solidity;soli_string=sprintf('%2.2f',soli);%等价于转字符串 % signal=num2str(nums(k));signal=sprintf('%d',k);%直接使用打印语句打印序号 text(centr(2*k-1),centr(2*k),signal)%按序标记物体
text(centr(2*k-1)-30,centr(2*k)-30,soli_string)%标注每个Solidity值 end
for k=1:numobjects plot(mexdata(k).ConvexHull(:,1),mexdata(k).ConvexHull(:,2),...'b','Linewidth',2)end
%画出1和2号物体的外接矩形
%>> rectangle('position',[9.5000 224.5000 62.0000 63.0000])%>> rectangle('position',[65.5000 141.5000 34.0000 39.0000])%画出每个物体的外接矩形 bb=[mexdata.BoundingBox];for k=1:numobjects rectangle('position',[bb(4*k-3)bb(4*k-2)bb(4*k-1)bb(4*k)])end
%>> figure,imshow(mexdata(1).Image)%只显示1号物体的图像
%>> figure,imshow(mexdata(1).ConvexImage)%画出1号物体的凸多边形 %>> figure,imshow(mexdata(2).Image)%只显示2号物体的图像
%>> figure,imshow(mexdata(2).ConvexImage)%画出2号物体的凸多边形 %画出单个物体的凸多边形的填充图形 for k=1:numobjects figure,imshow(mexdata(k).ConvexImage)end
%只显示Solidity>0.92的物体的图像 >> idx = find([mexdata.Solidity] > 0.92);>> BW2 = ismember(labeled,idx);>> figure,imshow(BW2)
>> mexdata=regionprops(labeled,'all');>> %只显示Solidity<0.92的物体的图像 idx = find([mexdata.Solidity] < 0.92);bw2 = ismember(labeled,idx);figure,imshow(bw2)%mexdata.Solidity;
>> numdown=find([mexdata.Solidity]<0.92);mexdata(numdown,:)=[];>> mexdata
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %2006.6.19 %roipoly函数的用法 I = imread('eight.tif');c = [222 272 300 270 221 194];r = [21 21 75 121 121 75];BW = roipoly(I,c,r);imview(I), imview(BW)
%可以使用下面的方法创建相应的向量: regionprops(L,'Area');allArea = [stats.Area];
%创建一个只包含面积大于80的二值图像 idx = find([stats.Area] > 80);BW2 = ismember(L,idx);
%只显示某个下标所对应的物体图像 bw2=ismember(L,N);figure,imshow(bw2);
%在调用regionprops之前必须将二值图像转变为标注矩阵 L = bwlabel(BW);%或者
L = double(BW);
%将matlab数据写到excel中 a=ones(3);success = xlswrite('c:/matlab/work/myworkbook.xls',a,'A2:C4')%将行矩阵转换为列矩阵 a=[1 2 3 4 5 6];b=transpose(a);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %2006.6.22球形物体的检测和标识(循环检测和标识算法)clc;clear;close all;%Step 1: Read image %Step 2: Threshold the image %Step 3: Remove the noise %Step 4: Find the boundaries %Step 5: Determine which objects are round >> RGB = imread('pillsetc.png');imshow(RGB)>> I = rgb2gray(RGB);threshold = graythresh(I);bw = im2bw(I,threshold);imshow(bw)>> % remove all object containing fewer than 30 pixels bw = bwareaopen(bw,30);>> figure,imshow(bw)>> % fill a gap in the pen's cap se = strel('disk',2);bw = imclose(bw,se);>> figure,imshow(bw)>> % fill any holes, so that regionprops can be used to estimate % the area enclosed by each of the boundaries bw = imfill(bw,'holes');>> figure,imshow(bw)>> [B,L] = bwboundaries(bw,'noholes');>> % Display the label matrix and draw each boundary figure,imshow(label2rgb(L, @jet, [.5.5.5]))>> hold on for k = 1:length(B)boundary = B{k};plot(boundary(:,2), boundary(:,1), 'w', 'LineWidth', 2)end >> stats = regionprops(L,'Area','Centroid');>> stats = regionprops(L,'Area','Centroid');threshold = 0.94;% loop over the boundaries for k = 1:length(B)% obtain(X,Y)boundary coordinates corresponding to label 'k' boundary = B{k};% compute a simple estimate of the object's perimeter delta_sq = diff(boundary).^2;perimeter = sum(sqrt(sum(delta_sq,2)));
% obtain the area calculation corresponding to label 'k' area = stats(k).Area;
% compute the roundness metric metric = 4*pi*area/perimeter^2;
% display the results metric_string = sprintf('%2.2f',metric);% mark objects above the threshold with a black circle if metric > threshold centroid = stats(k).Centroid;plot(centroid(1),centroid(2),'ko');end
text(boundary(1,2)-35,boundary(1,1)+13,metric_string,'Color','y',...'FontSize',14,'FontWeight','bold');end >> title(['Metrics closer to 1 indicate that ',...'the object is approximately round']);
第四篇:摄影课程小结
摄影课程小结
视传四班-高汉经过了几周的摄影课的学习,我不得不说我真的真的学到了很多,也收获了从书本上无法得到的快乐——亲身体验的快乐。
由于是这学期的第一期课程,在寒假的时候辅导员就开始催着我们准备数码单发,老实说,这一下子把我难住了,仅仅是为了学一个月的摄影课程,就要白白投资进去几千上万,但是总体还是怀着期盼的感觉,也恰好满足了自己长久以来浮夸的愿望——接触摄影,接近单反世界。
总算是弄到单反了,课程也开始了,每天都有不一样的任务要去完成,老师更是搬出了微博来检查每个人完成作业的情况,我不禁有些感动了,这算是大学以来我遇到的第一个这么负责的老师了,真的很难得。原本就对摄影有学习的热情,再遇上这样的老师,我学习摄影的劲头就更加足了。从对单反的一无所知到现在能熟练调出拍摄条件对应的数值,却只用了短短一个月。也慢慢培养起对图片的感知敏锐度,这是从前无论如何都不曾感受到的喜悦的。
摄影课程经历了外拍、棚拍,在内容上由单纯的黑白光影到成熟的广告作品,老师也时刻督促我们去用心完成,这使我度过了第一个无比充实的课程。棚拍的时候掌握不好光线就要前后调整好多次,为了一张满意的照片,整个小组的人都得不间断的忙上一个下午,甚至一个下午也不够,有些摄影上造成的图片的缺憾,总想着用ps去完善,但是真正开始去完善是才发现,一点点小小的失误需要在ps上很多花费很多精力,又加上我们自身ps水平实在有待提高,所以在摄影上不得不严格要求,力求完美。也明白出好的照片是基于质量和数量。
以上就是我学习摄影的真实感受,至今对此唯一的遗憾就是当时还不够用心。感谢老师,对学习的热情高涨!
第五篇:Photoshop图像处理课程总结
《Photoshop图像处理》课程总结
课程名称:Photoshop课程代码:24011084 班级:16新闻学1、16新闻学(网络与新媒体方向)1 学 时:40其中,理论学时:20实践学时:18 其他:2 学 分:3 《Photoshop图像处理》课程一门专业基础课。要求学生通过实践教学,掌握Photoshop软件的基本操作,包括工具栏的使用、图层、图层蒙板、图层样式的使用,色彩的调整方法,常用滤镜的使用。
图像处理
一、课程教学内容
(1)Photoshop基本工具的使用(必学)(2)矢量图形的绘制(必学)(3)图层基本操作(必学)(4)图层蒙板的操作(必学)
(5)图层样式的操作(根据教学进度可删减)(6)图层混合效果的操作(根据教学进度可删减)(7)图像调色(必学)
(8)图像通道(根据教学进度可删减)(9)图像滤镜(根据教学进度可删减)
二、课程考试内容
(1)基本操作(15分)
要求:主要考Photoshop工具的使用,请根据提供的素材和效果图,完成操作。保存PSD格式和JPEG格式各1份,并完成电子答题卡。
(2)图标绘制(20分)
要求:主要考Photoshop矢量工具的使用,请根据提供的素材和效果图,完成操作。保存PSD格式和JPEG格式各1份,并完成电子答题卡。
(3)选做题(25分)
要求:主要考Photoshop图层和调色的操作,请根据提供的素材和效果图,完成操作。本题共提供2组素材和效果图,请自行选择完成1组。保存PSD格式和JPEG格式各1份,并完成电子答题卡。
(4)个人设计作品(40分)
要求:主题不限,可以是图标设计,包装设计,书籍封面设计、产品宣传设计、海报等等,请将自己在这一学期中最优秀的设计作品上交,上交PSD格式和JPEG格式各1份,并完成电子答题卡。
三、课程教学所遇问题及解决思路
课程教学总会问题各种各样的问题,有的学生学习慢,有的学习接受快,如何平衡各个学生的要求。新考核方式的产生,同时也产生新的问题,需要我们及时地发现和解决,不然会给我们的教学质量带来很多不良的影响。综合分析认为,本课程教学中的主要问题有:
(1)学生基础弱与学生学习进度不一的问题:
学生的接受能力不一,有的学习能力快,嫌老师讲得慢,不想听。有的学生接受能力慢,觉得老师讲得太快,及难跟不上。而且有的学生在之前对计算机基础的键盘操作都不大熟悉,对本课程的学习更是有一定的难度。解决思路
教学过程要有弹性,不能死板地一步一步的教,要根据学生的学习特点,对基础知识讲透讲精,然后对基础技能有一定的拓展,让学生快的同学有所思,有所获,同时不必要求每一个同学都能做到,对统一要求的作业以基础要求为主。(2)个别学生对学业不管不问的问题:
一些同学散慢惯了,从来不交作业,对期末作品也不管不问,这些同学对自己的学习一点不关心,对自己的作业不关心,导致要交作业时,连要交什么都不知道。解决思路
方法就一条,老师对这部分同学要多加关心。
以后在期末分组完成作品时,能及时了解学生的分组情况,了解学生完成作品中的困难,帮助他们树立良好的学习态度,即使做不了优秀的作品,也要完成作品,哪怕质量不是很高,但至少要认真地面对自己的学业。学习态度大于学习能力,这一点需要好好地教会学生。
四、课程反思以及改进
1、教学目标的优化性。以学定教,以学生为本,把握教学进度,不能求全责备。
2、教学要求的层次性。除体现教学目标的层次性以外,还要注意对学生评价的层次性,对于“差异学生”采取“差异评价”,以激励的原则,调动全体学生的学习积极性和主动性。
3、教学案例要多元化,尽量贴近实际,向有商业价值的作品内容倾斜。
4、发展课程影响力,引导学生进行专业发展,明确课程在专业发展中的作用。
5、教学评价的激励性。坚持“正面鼓励、激励为先、差异评价”原则,发挥教学评价的激励功能,认同每一位学生的进步和成功,随时注意鼓励、表扬、唤醒,让每一位学生体验成功与自信。
6、提高教师的个人业务能力,让学生真正学有所获。
7、多关注学生的进步,少关注技能高低,技能水平不能一蹴而就,而有努力就会有进步。