第一篇:《攝影與圖像處理初步》課程小結
《攝影與圖像處理初步》課程小結
《攝影與圖像處理初步》
《攝影與圖像處理初步》是針對工科高等院校本科各專業開設的一門素質培養與基本技能的提高課程,以啟迪智慧、培養富于人格健全、品性高尚、具有藝術修養和審美情趣的、能夠全面和諧發展的人為培養目標。通過該學科的學習,使同學們了解圖像時代的文化意義并掌握基本的攝影與圖像處理理論與實踐技能,同時,通過對攝影藝術作品的鑒賞品鑒,以因領悟人類對美追求的智慧為契機而開拓自己的生命視野,理解個體人的價值意義,從而豐富自己的生活趣味。
課程內容分攝影與圖像處理兩部分,其中攝影注重鑒賞與基本的攝影理論、相機原理同技法方面知識的介紹,課堂采用圖像展示、師生共同討論、實景拍攝等豐富形式,重在對圖像文化意義的欣賞與批評能力的提高;圖像處理就如滿賽哥同學所說的,作為對攝影作品精神的重塑和意境的整合改造,其重要性當在藝術趣味的驅使下進行。課程重在介紹最簡單的三款圖像與視頻工具(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、多關注學生的進步,少關注技能高低,技能水平不能一蹴而就,而有努力就會有進步。