<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7509220249568087529</id><updated>2012-02-16T10:42:17.072-08:00</updated><category term='portofolio 5'/><category term='portofolio 3'/><category term='portofolio 2'/><category term='portofolio 6'/><category term='portofolio 4'/><category term='portofolio 7'/><category term='portofolio 1'/><title type='text'>yudha weblog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://yudhaaditya.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7509220249568087529/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://yudhaaditya.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Yudha Aditya</name><uri>http://www.blogger.com/profile/12303333565227862899</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>7</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7509220249568087529.post-6059177245000464539</id><published>2008-05-18T03:25:00.001-07:00</published><updated>2008-05-18T07:52:06.734-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='portofolio 7'/><title type='text'>Portofolio 7</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Portofolio 7:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&gt;&gt;portofolio 7&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_2wMGiZdjuiw/SDAE_qGhKaI/AAAAAAAAAJk/vV-37VEJJuo/s1600-h/stereo1.jpg"&gt;&lt;img style="cursor: pointer;" src="http://2.bp.blogspot.com/_2wMGiZdjuiw/SDAE_qGhKaI/AAAAAAAAAJk/vV-37VEJJuo/s320/stereo1.jpg" alt="" id="BLOGGER_PHOTO_ID_5201663061292820898" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_2wMGiZdjuiw/SDAFJ6GhKbI/AAAAAAAAAJs/Tivgb8qwuo8/s1600-h/stereo2.jpg"&gt;&lt;img style="cursor: pointer;" src="http://3.bp.blogspot.com/_2wMGiZdjuiw/SDAFJ6GhKbI/AAAAAAAAAJs/Tivgb8qwuo8/s320/stereo2.jpg" alt="" id="BLOGGER_PHOTO_ID_5201663237386480050" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_2wMGiZdjuiw/SDAEUaGhKYI/AAAAAAAAAJU/V-MBtYzAGgI/s1600-h/hasil_yudha.png"&gt;&lt;img style="cursor: pointer; width: 320px; height: 240px;" src="http://1.bp.blogspot.com/_2wMGiZdjuiw/SDAEUaGhKYI/AAAAAAAAAJU/V-MBtYzAGgI/s320/hasil_yudha.png" alt="" id="BLOGGER_PHOTO_ID_5201662318263478658" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;hasil:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;pt3D =&lt;br /&gt;&lt;br /&gt; -286.0283  159.4041  142.0436&lt;br /&gt; -177.4378  163.8930  143.5515&lt;br /&gt; -177.4575   17.6164  140.7850&lt;br /&gt; -290.2918   12.1955  145.2484&lt;br /&gt; -286.7534  160.7354    8.3899&lt;br /&gt; -287.7561   12.6779    6.4816&lt;br /&gt; -174.6022   14.6008    2.7149&lt;br /&gt;  -84.5654  -68.1487    0.4912&lt;br /&gt;  -68.3572 -146.0519  123.5506&lt;br /&gt;   18.9348 -178.8454   -4.1677&lt;br /&gt; -136.9619 -207.2383   -1.7911&lt;br /&gt;  136.3903  -91.5529   62.7009&lt;br /&gt;  206.1682  -94.1534   62.1509&lt;br /&gt;  208.5392 -158.4030   57.5592&lt;br /&gt;  137.3153 -155.6600   59.8104&lt;br /&gt;  133.9942  -92.6254   -5.9321&lt;br /&gt;  133.3809 -160.9251   -8.6149&lt;br /&gt;  204.9606 -163.8064  -10.6342&lt;br /&gt;&lt;br /&gt;Length matrix of face sides&lt;br /&gt;&lt;br /&gt;slengths =&lt;br /&gt;&lt;br /&gt;  147.3052  108.6937  146.3028  113.0525&lt;br /&gt;  113.0525  138.1325  113.2328  138.7908&lt;br /&gt;  138.7908  148.0732  133.6623  147.3052&lt;br /&gt;  111.9686  133.6623  108.6937  138.7908&lt;br /&gt;  138.7908  146.3028  138.1325  149.7892&lt;br /&gt;  149.7892  113.2328  148.0732  111.9686&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;nface =&lt;br /&gt;&lt;br /&gt;     4     1     2     3     4&lt;br /&gt;     4     3     7     6     4&lt;br /&gt;     4     6     5     1     4&lt;br /&gt;     8     5     1     2     8&lt;br /&gt;     8     2     3     7     8&lt;br /&gt;     8     7     6     5     8&lt;br /&gt;&lt;br /&gt;Length matrix of face sides&lt;br /&gt;&lt;br /&gt;slengths =&lt;br /&gt;&lt;br /&gt;  146.5443  158.1369  151.6171&lt;br /&gt;  146.5443  155.4379  148.6489&lt;br /&gt;  151.6171  158.4790  148.6489&lt;br /&gt;  158.1369  158.4790  155.4379&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;nface =&lt;br /&gt;&lt;br /&gt;     1     2     3     1&lt;br /&gt;     1     2     4     1&lt;br /&gt;     1     3     4     1&lt;br /&gt;     2     3     4     2&lt;br /&gt;&lt;br /&gt;Length matrix of face sides&lt;br /&gt;&lt;br /&gt;slengths =&lt;br /&gt;&lt;br /&gt;   64.1789   69.8286   64.4571   71.3123&lt;br /&gt;   71.3123   68.5008   71.6662   68.7402&lt;br /&gt;   68.7402   68.3551   68.6831   64.1789&lt;br /&gt;   68.5777   68.6831   69.8286   68.7402&lt;br /&gt;   68.7402   64.4571   68.5008   64.5929&lt;br /&gt;   64.5929   71.6662   68.3551   68.5777&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;nface =&lt;br /&gt;&lt;br /&gt;     4     1     2     3     4&lt;br /&gt;     4     3     7     6     4&lt;br /&gt;     4     6     5     1     4&lt;br /&gt;     8     5     1     2     8&lt;br /&gt;     8     2     3     7     8&lt;br /&gt;     8     7     6     5     8&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;listing of portofolio7:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;function portofolio7()&lt;br /&gt;    im1 = imread('stereo1.jpg' );&lt;br /&gt;    im2 = imread('stereo2.jpg' );&lt;br /&gt;      &lt;br /&gt;    C1 = [0.6596   -0.7391   -0.0615  363.4235;&lt;br /&gt;         -0.1851   -0.1387   -0.9437  342.7417;&lt;br /&gt;          0.0005    0.0003   -0.0003    1.0000];    &lt;br /&gt;    C2 = [0.9234   -0.2221   -0.0257  347.7796;&lt;br /&gt;         -0.0741   -0.2278   -0.9168  339.8960;&lt;br /&gt;          0.0002    0.0004   -0.0002    1.0000];&lt;br /&gt;   &lt;br /&gt;    pt3D = stereo(im1, im2, C1, C2)&lt;br /&gt;   &lt;br /&gt;    figure(3)&lt;br /&gt;    cube(pt3D(1:7,:));&lt;br /&gt;    tetrahedron(pt3D(8:11,:));&lt;br /&gt;    cube(pt3D(12:18,:));&lt;br /&gt;   &lt;br /&gt;    % label coordinate axes&lt;br /&gt;    text(100,0,0,'x');&lt;br /&gt;    text(0,100,0,'y');&lt;br /&gt;    text(0,0,100,'z');&lt;br /&gt; &lt;br /&gt;    % draw in a set of coordinate axes&lt;br /&gt;    axislength = 100*eye(3);&lt;br /&gt;    for i=1:3&lt;br /&gt;        line([0, axislength(i,1)], [0, axislength(i,2)], [0, axislength(i,3)]);&lt;br /&gt;    end&lt;br /&gt;    axis equal; box on; rotate3D on; grid on;&lt;br /&gt;end&lt;br /&gt; &lt;br /&gt;function cube(cubepts3D)&lt;br /&gt;    % determine hidden vertex&lt;br /&gt;    cubepts3D(8,:) = - cubepts3D(4,:) + cubepts3D(6,:) + cubepts3D(2,:);&lt;br /&gt;    % define faces from standard numbering&lt;br /&gt;    cubefaces = [4 1 2 3&lt;br /&gt;                 4 3 7 6&lt;br /&gt;                 4 6 5 1&lt;br /&gt;                 8 5 1 2&lt;br /&gt;                 8 2 3 7&lt;br /&gt;                 8 7 6 5];&lt;br /&gt;    % draw 'patcheds' from vertice and face matrix&lt;br /&gt;    patch('Faces',cubefaces,'Vertices',cubepts3D, 'FaceColor', 'none')&lt;br /&gt;    fprintf(1, 'Length matrix of face sides\n');&lt;br /&gt;    [slengths, nface] = sidelengths(cubepts3D, cubefaces)&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;function tetrahedron(tetrahedronpts3D)&lt;br /&gt;    % define faces from standard numbering&lt;br /&gt;    tetrahedronfaces = [1 2 3&lt;br /&gt;                        1 2 4&lt;br /&gt;                        1 3 4&lt;br /&gt;                        2 3 4];&lt;br /&gt;    % draw 'patcheds' from vertice and face matrix&lt;br /&gt;    patch('Faces',tetrahedronfaces,'Vertices',tetrahedronpts3D, 'FaceColor', 'none')&lt;br /&gt;    fprintf(1, 'Length matrix of face sides\n');&lt;br /&gt;    [slengths, nface] = sidelengths(tetrahedronpts3D, tetrahedronfaces)&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;function [slengths, nface] = sidelengths(pt3D, face)&lt;br /&gt;    [rows, cols] = size(face);&lt;br /&gt;    nface = [face face(:,1)];&lt;br /&gt;    for i=1:cols&lt;br /&gt;        for j=1:rows&lt;br /&gt;            slengths(j,i) = norm(pt3D(nface(j,i),:)-pt3D(nface(j,i+1),:));&lt;br /&gt;        end&lt;br /&gt;    end&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;listing of digipits.m:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;% DIGIPTS - digitise points in an image&lt;br /&gt;%&lt;br /&gt;% Function to digitise points in an image.  Points are digitised by clicking&lt;br /&gt;% with the left mouse button.  Clicking any other button terminates the&lt;br /&gt;% function.  Each location digitised is marked with a red '+'.&lt;br /&gt;%&lt;br /&gt;% Usage:  [u,v] = digipts&lt;br /&gt;%&lt;br /&gt;% where u and v are  nx1 arrays of x and y coordinate values digitised in&lt;br /&gt;% the image.&lt;br /&gt;%&lt;br /&gt;% This function uses the cross-hair cursor provided by GINPUT.  This is&lt;br /&gt;% much more useable than IMPIXEL&lt;br /&gt;&lt;br /&gt;% Peter Kovesi&lt;br /&gt;% School of Computer Science &amp;amp; Software Engineering&lt;br /&gt;% The University of Western Australia&lt;br /&gt;% pk @ csse uwa edu au&lt;br /&gt;% http://www.csse.uwa.edu.au/~pk&lt;br /&gt;%&lt;br /&gt;% May 2002&lt;br /&gt;&lt;br /&gt;function [u,v] = digipts&lt;br /&gt;   &lt;br /&gt;    hold on&lt;br /&gt;    u = []; v = [];&lt;br /&gt;    but = 1;&lt;br /&gt;    while but == 1&lt;br /&gt;    [x y but] = ginput(1);&lt;br /&gt;    if but == 1&lt;br /&gt;        u = [u;x];&lt;br /&gt;        v = [v;y];&lt;br /&gt;       &lt;br /&gt;        plot(u,v,'r+');&lt;br /&gt;    end&lt;br /&gt;    end&lt;br /&gt;   &lt;br /&gt;    hold off&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;listing of stereo.m:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;% STEREO&lt;br /&gt;%&lt;br /&gt;% Usage: pt3D = stereo(im1, im2, C1, C2)&lt;br /&gt;%&lt;br /&gt;% Where:  im1 and im2 are the two stereo images&lt;br /&gt;%         C1 and C2 are the calibration matrices&lt;br /&gt;%         for these two images respectively&lt;br /&gt;%&lt;br /&gt;% The function will prompt you to digitise some points in the first image&lt;br /&gt;% (finishing by clicking the right button).  The function then&lt;br /&gt;% prompts you to digitise the equivalent points (which you must digitise&lt;br /&gt;% in exactly the same sequence) in the second image. &lt;br /&gt;% The function then solves the stereo equations&lt;br /&gt;% and returns the 3D coordinates of the points in pt3D.&lt;br /&gt;function [XYZ, uv1, uv2] = stereo(im1, im2, C1, C2)&lt;br /&gt;&lt;br /&gt;    fprintf(1, 'Digitise some points in figure 1\n');&lt;br /&gt;    figure(1)&lt;br /&gt;    imshow(im1);&lt;br /&gt;    [u1,v1] = digipts;&lt;br /&gt;    uv1 = [u1,v1]';&lt;br /&gt;    fprintf(1, 'Digitise some points in figure 2\n');&lt;br /&gt;    figure(2)&lt;br /&gt;    imshow(im2);&lt;br /&gt;    [u2,v2] = digipts;&lt;br /&gt;    uv2 = [u2,v2]';&lt;br /&gt;    % check if same number of points are selected&lt;br /&gt;    if length(u1) ~= length(u2)&lt;br /&gt;        fprintf(1, 'Same number of points not selected\n');&lt;br /&gt;    end&lt;br /&gt;&lt;br /&gt;    for i = 1:length(u1)&lt;br /&gt;        a = [C1(1:2,1:3) - [u1(i)*C1(3,1:3); v1(i)*C1(3,1:3)];&lt;br /&gt;             C2(1:2,1:3) - [u2(i)*C2(3,1:3); v2(i)*C2(3,1:3)]];&lt;br /&gt;        c = [u1(i) - C1(1,4);&lt;br /&gt;             v1(i) - C1(2,4);&lt;br /&gt;             u2(i) - C2(1,4);&lt;br /&gt;             v2(i) - C2(2,4)];&lt;br /&gt;        b(:, i) = a \ c;&lt;br /&gt;    end&lt;br /&gt;    XYZ = b';&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_2wMGiZdjuiw/SDAFJ6GhKbI/AAAAAAAAAJs/Tivgb8qwuo8/s1600-h/stereo2.jpg"&gt;&lt;br /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7509220249568087529-6059177245000464539?l=yudhaaditya.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yudhaaditya.blogspot.com/feeds/6059177245000464539/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7509220249568087529&amp;postID=6059177245000464539' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7509220249568087529/posts/default/6059177245000464539'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7509220249568087529/posts/default/6059177245000464539'/><link rel='alternate' type='text/html' href='http://yudhaaditya.blogspot.com/2008/05/portofolio-7.html' title='Portofolio 7'/><author><name>Yudha Aditya</name><uri>http://www.blogger.com/profile/12303333565227862899</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_2wMGiZdjuiw/SDAE_qGhKaI/AAAAAAAAAJk/vV-37VEJJuo/s72-c/stereo1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7509220249568087529.post-268362285467002742</id><published>2008-05-18T03:05:00.000-07:00</published><updated>2008-05-18T07:45:55.404-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='portofolio 6'/><title type='text'>Portofolio 6</title><content type='html'>Portofolio 6:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;stereo1.jpg:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;im1 = imread('stereo1.jpg');&lt;br /&gt;imshow(im1),uv = ginput(12);&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_2wMGiZdjuiw/SDADAaGhKWI/AAAAAAAAAJE/EubAENHnU9s/s1600-h/stereo1.jpg"&gt;&lt;img style="cursor: pointer;" src="http://1.bp.blogspot.com/_2wMGiZdjuiw/SDADAaGhKWI/AAAAAAAAAJE/EubAENHnU9s/s320/stereo1.jpg" alt="" id="BLOGGER_PHOTO_ID_5201660875154467170" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_2wMGiZdjuiw/SDACYaGhKUI/AAAAAAAAAI0/sPCJCawRJuE/s1600-h/hasil1.png"&gt;&lt;img style="cursor: pointer;" src="http://1.bp.blogspot.com/_2wMGiZdjuiw/SDACYaGhKUI/AAAAAAAAAI0/sPCJCawRJuE/s320/hasil1.png" alt="" id="BLOGGER_PHOTO_ID_5201660187959699778" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;uv = uv';&lt;br /&gt;calibpts;&lt;br /&gt;xyz = calibPts;&lt;br /&gt;c = calibrate(im1,xyz,uv);&lt;br /&gt;&lt;br /&gt;hasil:&lt;br /&gt;&lt;br /&gt;C =&lt;br /&gt;&lt;br /&gt;    0.6789   -0.7263   -0.0627  362.5067&lt;br /&gt;   -0.1722   -0.1175   -0.9483  342.2501&lt;br /&gt;    0.0006    0.0003   -0.0003    1.0000&lt;br /&gt;&lt;br /&gt;mean squared error is 2.986016e-001&lt;br /&gt;error in satisfying the camera calibration matrix is 5.820335e-009&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;stereo2.jpg:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;im2= imread('stereo1.jpg');&lt;br /&gt;imshow(im2),uv = ginput(12);&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_2wMGiZdjuiw/SDAD6qGhKXI/AAAAAAAAAJM/343Mod16ncg/s1600-h/stereo2.jpg"&gt;&lt;img style="cursor: pointer;" src="http://2.bp.blogspot.com/_2wMGiZdjuiw/SDAD6qGhKXI/AAAAAAAAAJM/343Mod16ncg/s320/stereo2.jpg" alt="" id="BLOGGER_PHOTO_ID_5201661875881847154" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_2wMGiZdjuiw/SDACvaGhKVI/AAAAAAAAAI8/9Z3rBrRxf2c/s1600-h/hasil2.png"&gt;&lt;img style="cursor: pointer;" src="http://1.bp.blogspot.com/_2wMGiZdjuiw/SDACvaGhKVI/AAAAAAAAAI8/9Z3rBrRxf2c/s320/hasil2.png" alt="" id="BLOGGER_PHOTO_ID_5201660583096691026" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;uv = uv';&lt;br /&gt;calibpts;&lt;br /&gt;xyz = calibPts;&lt;br /&gt;c = calibrate(1m2,xyz,uv);&lt;br /&gt;&lt;br /&gt;hasil:&lt;br /&gt;&lt;br /&gt;C =&lt;br /&gt;&lt;br /&gt;    0.9448   -0.1889   -0.0717  348.9422&lt;br /&gt;   -0.0682   -0.2070   -0.9236  338.6192&lt;br /&gt;    0.0002    0.0005   -0.0003    1.0000&lt;br /&gt;&lt;br /&gt;mean squared error is 1.379448e-001&lt;br /&gt;error in satisfying the camera calibration matrix is 6.008675e-010&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;listing of calibpts.m:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;% 3D Coordinate data of the target calibration points&lt;br /&gt;% All positions are expressed in millimetres&lt;br /&gt;%&lt;br /&gt;% If you run this script by simply typing&lt;br /&gt;%&lt;br /&gt;% &gt;&gt; calibpts&lt;br /&gt;%&lt;br /&gt;% you will end up with a local 12 x 3  matrix variable called&lt;br /&gt;% calibPts containing these data points.&lt;br /&gt;&lt;br /&gt;calibPts = [ 49   0  65     % x y z coords of point 1&lt;br /&gt;            129   0  65     % x y z coords of point 2&lt;br /&gt;             49   0 145     % etc&lt;br /&gt;            129   0 145&lt;br /&gt;             49   0 225&lt;br /&gt;            129   0 225&lt;br /&gt;              0 129  65&lt;br /&gt;              0  49  65&lt;br /&gt;              0 129 145&lt;br /&gt;              0  49 145&lt;br /&gt;              0 129 225&lt;br /&gt;              0  49 225 ];&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;listing of calibrate.m:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;% CALIBRATE&lt;br /&gt;%&lt;br /&gt;% Function to perform camera calibration&lt;br /&gt;%&lt;br /&gt;% Usage:   C = calibrate(im, XYZ, uv)&lt;br /&gt;%&lt;br /&gt;%   Where:   im  - is the image of the calibration target.&lt;br /&gt;%            XYZ - is a n x 3 array of  XYZ coordinates&lt;br /&gt;%                  of the calibration target points.&lt;br /&gt;%            uv  - is a 2 x n array of the image coordinates&lt;br /&gt;%                  of the calibration target points.&lt;br /&gt;%            C   - is the 3 x 4 camera calibration matrix.&lt;br /&gt;%&lt;br /&gt;%  This function plots the uv coordinates onto the image of&lt;br /&gt;%  the calibration target.  It also projects the XYZ coordinates&lt;br /&gt;%  back into image coordinates using the  calibration matrix&lt;br /&gt;%  and plots these points too as a visual check on the accuracy of&lt;br /&gt;%  the calibration process. &lt;br /&gt;%  Lines from the origin to the vanishing points in the X, Y and&lt;br /&gt;%  Z directions are overlaid on the image.&lt;br /&gt;%  The mean squared error between the  positions of the uv coodinates&lt;br /&gt;%  and the projected XYZ coordinates is also reported.&lt;br /&gt;%&lt;br /&gt;%  The function should also report the error in satisfying the&lt;br /&gt;%  camera calibration matrix constraint - the magnitude of&lt;br /&gt;%   (q1 x q3).(q2 x q3)&lt;br /&gt;%&lt;br /&gt;&lt;br /&gt;function C = calibrate(im, XYZ, uv)&lt;br /&gt;% obtain rows so arbitrary number of points can be used&lt;br /&gt;    [rows, cols] = size(XYZ);&lt;br /&gt;   &lt;br /&gt;    XYZ1 = [XYZ, ones(rows, 1)];&lt;br /&gt;   &lt;br /&gt;    % buat B matrix&lt;br /&gt;    for n = 1:rows&lt;br /&gt;        B(2*n-1, :) = [XYZ1(n, :) 0 0 0 0 -uv(1, n)*XYZ(n, :)];&lt;br /&gt;        B(2*n,   :) = [0 0 0 0 XYZ1(n, :) -uv(2, n)*XYZ(n, :)];&lt;br /&gt;    end&lt;br /&gt;   &lt;br /&gt;    c = B \ uv(:);&lt;br /&gt;    c(12) = 1;&lt;br /&gt;    C = reshape(c,4,3)'&lt;br /&gt;   &lt;br /&gt;    XYZ1 = XYZ1';&lt;br /&gt;    for i = 1:rows&lt;br /&gt;        suv(:,i) = C*XYZ1(:,i);&lt;br /&gt;        suv(:,i) = suv(:,i)/suv(3,i);&lt;br /&gt;    end&lt;br /&gt;&lt;br /&gt;    % calculate the mean squared error between the positions of the uv coodinates and suv.&lt;br /&gt;    mse = mean(mean((uv - suv(1:2,:)).^2));&lt;br /&gt;    fprintf(1, 'mean squared error is %d\n', mse);&lt;br /&gt;   &lt;br /&gt;    % calculate the error in satisfying the camera calibration matrix constraint&lt;br /&gt;    q1 = C(1,1:3)';&lt;br /&gt;    q2 = C(2,1:3)';&lt;br /&gt;    q3 = C(3,1:3)';&lt;br /&gt;    error = abs(dot(cross(q1, q3), cross(q2, q3)));&lt;br /&gt;    fprintf(1, 'error in satisfying the camera calibration matrix is %d\n', error);&lt;br /&gt;   &lt;br /&gt;    % annotate image&lt;br /&gt;    imshow(im);&lt;br /&gt;    hold;&lt;br /&gt;    % plot uv coordinates&lt;br /&gt;    plot(uv(1, :), uv(2, :),'rx')&lt;br /&gt;       &lt;br /&gt;    % plot XYZ coordinates&lt;br /&gt;    plot(suv(1,:), suv(2,:),'b+')&lt;br /&gt;   &lt;br /&gt;    % draw vanishing lines&lt;br /&gt;    for i = 1:3&lt;br /&gt;        line([C(1,4), C(1,i)/C(3,i)],[C(2,4), C(2,i)/C(3,i)])&lt;br /&gt;    end&lt;br /&gt;    hold;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7509220249568087529-268362285467002742?l=yudhaaditya.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yudhaaditya.blogspot.com/feeds/268362285467002742/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7509220249568087529&amp;postID=268362285467002742' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7509220249568087529/posts/default/268362285467002742'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7509220249568087529/posts/default/268362285467002742'/><link rel='alternate' type='text/html' href='http://yudhaaditya.blogspot.com/2008/05/portofolio-6.html' title='Portofolio 6'/><author><name>Yudha Aditya</name><uri>http://www.blogger.com/profile/12303333565227862899</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_2wMGiZdjuiw/SDADAaGhKWI/AAAAAAAAAJE/EubAENHnU9s/s72-c/stereo1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7509220249568087529.post-190982737024284522</id><published>2008-05-18T00:47:00.000-07:00</published><updated>2008-05-18T08:36:49.004-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='portofolio 5'/><title type='text'>Portofolio 5</title><content type='html'>&lt;span style="font-weight: bold;"&gt;portofolio 5:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;portofolio5 = gaussian('myPhoto.jpg',3)&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_2wMGiZdjuiw/SDBDTKGhKkI/AAAAAAAAAK0/tXcVBAbkPgw/s1600-h/1.1.png"&gt;&lt;img style="cursor: pointer;" src="http://4.bp.blogspot.com/_2wMGiZdjuiw/SDBDTKGhKkI/AAAAAAAAAK0/tXcVBAbkPgw/s320/1.1.png" alt="" id="BLOGGER_PHOTO_ID_5201731566021192258" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_2wMGiZdjuiw/SDBGM6GhKlI/AAAAAAAAAK8/YjBFDntf0fo/s1600-h/1.2.png"&gt;&lt;img style="cursor: pointer;" src="http://3.bp.blogspot.com/_2wMGiZdjuiw/SDBGM6GhKlI/AAAAAAAAAK8/YjBFDntf0fo/s320/1.2.png" alt="" id="BLOGGER_PHOTO_ID_5201734757181893202" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_2wMGiZdjuiw/SDBGm6GhKmI/AAAAAAAAALE/2CQNQAjcSIY/s1600-h/1.3.png"&gt;&lt;img style="cursor: pointer;" src="http://3.bp.blogspot.com/_2wMGiZdjuiw/SDBGm6GhKmI/AAAAAAAAALE/2CQNQAjcSIY/s320/1.3.png" alt="" id="BLOGGER_PHOTO_ID_5201735203858492002" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_2wMGiZdjuiw/SDBGxKGhKnI/AAAAAAAAALM/d3beyFn74RM/s1600-h/1.4.png"&gt;&lt;img style="cursor: pointer;" src="http://4.bp.blogspot.com/_2wMGiZdjuiw/SDBGxKGhKnI/AAAAAAAAALM/d3beyFn74RM/s320/1.4.png" alt="" id="BLOGGER_PHOTO_ID_5201735379952151154" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;portofolio5 = gaussian('myPhoto.jpg',5)&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_2wMGiZdjuiw/SDBHu6GhKpI/AAAAAAAAALc/1G_b7a5t3tM/s1600-h/2.1.png"&gt;&lt;img style="cursor: pointer;" src="http://3.bp.blogspot.com/_2wMGiZdjuiw/SDBHu6GhKpI/AAAAAAAAALc/1G_b7a5t3tM/s320/2.1.png" alt="" id="BLOGGER_PHOTO_ID_5201736440809073298" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_2wMGiZdjuiw/SDBJmqGhKqI/AAAAAAAAALk/ekXZqR4B0SQ/s1600-h/2.2.png"&gt;&lt;img style="cursor: pointer;" src="http://2.bp.blogspot.com/_2wMGiZdjuiw/SDBJmqGhKqI/AAAAAAAAALk/ekXZqR4B0SQ/s320/2.2.png" alt="" id="BLOGGER_PHOTO_ID_5201738498098408098" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_2wMGiZdjuiw/SDBKSaGhKsI/AAAAAAAAALw/bPAvaJEnhq4/s1600-h/2.3.png"&gt;&lt;img style="cursor: pointer;" src="http://1.bp.blogspot.com/_2wMGiZdjuiw/SDBKSaGhKsI/AAAAAAAAALw/bPAvaJEnhq4/s320/2.3.png" alt="" id="BLOGGER_PHOTO_ID_5201739249717684930" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_2wMGiZdjuiw/SDBKfaGhKtI/AAAAAAAAAL4/lsauO6ubCvI/s1600-h/2.4.png"&gt;&lt;img style="cursor: pointer;" src="http://1.bp.blogspot.com/_2wMGiZdjuiw/SDBKfaGhKtI/AAAAAAAAAL4/lsauO6ubCvI/s320/2.4.png" alt="" id="BLOGGER_PHOTO_ID_5201739473055984338" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;portofolio5 = gaussian('myPhoto.jpg',9)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_2wMGiZdjuiw/SDBLBqGhKuI/AAAAAAAAAMA/MwMlD-jE3UE/s1600-h/3.1.png"&gt;&lt;img style="cursor: pointer;" src="http://2.bp.blogspot.com/_2wMGiZdjuiw/SDBLBqGhKuI/AAAAAAAAAMA/MwMlD-jE3UE/s320/3.1.png" alt="" id="BLOGGER_PHOTO_ID_5201740061466503906" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_2wMGiZdjuiw/SDBLXKGhKvI/AAAAAAAAAMI/G4kd6ClSOjM/s1600-h/3.2.png"&gt;&lt;img style="cursor: pointer;" src="http://4.bp.blogspot.com/_2wMGiZdjuiw/SDBLXKGhKvI/AAAAAAAAAMI/G4kd6ClSOjM/s320/3.2.png" alt="" id="BLOGGER_PHOTO_ID_5201740430833691378" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_2wMGiZdjuiw/SDBMFaGhKwI/AAAAAAAAAMQ/7l_xcqLpztg/s1600-h/3.3.png"&gt;&lt;img style="cursor: pointer;" src="http://1.bp.blogspot.com/_2wMGiZdjuiw/SDBMFaGhKwI/AAAAAAAAAMQ/7l_xcqLpztg/s320/3.3.png" alt="" id="BLOGGER_PHOTO_ID_5201741225402641154" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_2wMGiZdjuiw/SDBMr6GhKxI/AAAAAAAAAMY/Bs_OtL9PXSM/s1600-h/3.4.png"&gt;&lt;img style="cursor: pointer;" src="http://3.bp.blogspot.com/_2wMGiZdjuiw/SDBMr6GhKxI/AAAAAAAAAMY/Bs_OtL9PXSM/s320/3.4.png" alt="" id="BLOGGER_PHOTO_ID_5201741886827604754" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;listing of gaussian.m:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:85%;"  &gt;function portofolio5 = gaussian(im,deviation)&lt;br /&gt;&lt;br /&gt;im = imread(im)&lt;br /&gt;g = rgb2gray(im);&lt;br /&gt;&lt;br /&gt;image = filter2(fspecial('gaussian', size(g),deviation), g);&lt;br /&gt;figure,imagesc(image),colormap gray;&lt;br /&gt;&lt;br /&gt;cannyim = EDGE(image,'canny',[0.0500 0.1250]);&lt;br /&gt;figure,imagesc(cannyim),colormap gray;&lt;br /&gt;&lt;br /&gt;imhori = filter2([-1 0 1], image);&lt;br /&gt;figure,imagesc(imhori),colormap gray;&lt;br /&gt;&lt;br /&gt;imvert = filter2([-1; 0; 1], image);&lt;br /&gt;figure,imagesc(imvert),colormap gray;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7509220249568087529-190982737024284522?l=yudhaaditya.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yudhaaditya.blogspot.com/feeds/190982737024284522/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7509220249568087529&amp;postID=190982737024284522' title='1 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7509220249568087529/posts/default/190982737024284522'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7509220249568087529/posts/default/190982737024284522'/><link rel='alternate' type='text/html' href='http://yudhaaditya.blogspot.com/2008/05/portofolio-5.html' title='Portofolio 5'/><author><name>Yudha Aditya</name><uri>http://www.blogger.com/profile/12303333565227862899</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_2wMGiZdjuiw/SDBDTKGhKkI/AAAAAAAAAK0/tXcVBAbkPgw/s72-c/1.1.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7509220249568087529.post-2632735555620265367</id><published>2008-05-18T00:40:00.001-07:00</published><updated>2008-05-18T07:07:34.823-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='portofolio 4'/><title type='text'>Portofolio 4</title><content type='html'>Portofolio 4:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_2wMGiZdjuiw/SC_6J6GhKOI/AAAAAAAAAIE/SfEtQdLDr0I/s1600-h/myPhoto.JPG"&gt;&lt;img style="cursor: pointer;" src="http://2.bp.blogspot.com/_2wMGiZdjuiw/SC_6J6GhKOI/AAAAAAAAAIE/SfEtQdLDr0I/s320/myPhoto.JPG" alt="" id="BLOGGER_PHOTO_ID_5201651142758574306" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;myPhoto.jpg&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_2wMGiZdjuiw/SC_z5KGhKJI/AAAAAAAAAHc/pjr0kZq5UJA/s1600-h/im.png"&gt;&lt;img style="cursor: pointer;" src="http://3.bp.blogspot.com/_2wMGiZdjuiw/SC_z5KGhKJI/AAAAAAAAAHc/pjr0kZq5UJA/s320/im.png" alt="" id="BLOGGER_PHOTO_ID_5201644257925998738" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;portofolio4 = porto4('myPhoto.jpg')&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Highboost filter membuat image menjadi blur:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_2wMGiZdjuiw/SC_dkqGhJ1I/AAAAAAAAAFA/OSfugur_AEc/s1600-h/highboostfftfreq.png"&gt;&lt;img style="cursor: pointer;" src="http://1.bp.blogspot.com/_2wMGiZdjuiw/SC_dkqGhJ1I/AAAAAAAAAFA/OSfugur_AEc/s320/highboostfftfreq.png" alt="" id="BLOGGER_PHOTO_ID_5201619716482869074" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_2wMGiZdjuiw/SC_dr6GhJ2I/AAAAAAAAAFI/N2M9bDgXuLk/s1600-h/highboostfftspac.png"&gt;&lt;img style="cursor: pointer;" src="http://2.bp.blogspot.com/_2wMGiZdjuiw/SC_dr6GhJ2I/AAAAAAAAAFI/N2M9bDgXuLk/s320/highboostfftspac.png" alt="" id="BLOGGER_PHOTO_ID_5201619841036920674" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_2wMGiZdjuiw/SC_686GhKPI/AAAAAAAAAIM/4g4qBR24q1A/s1600-h/newhighboostfft.png"&gt;&lt;img style="cursor: pointer;" src="http://2.bp.blogspot.com/_2wMGiZdjuiw/SC_686GhKPI/AAAAAAAAAIM/4g4qBR24q1A/s320/newhighboostfft.png" alt="" id="BLOGGER_PHOTO_ID_5201652018931902706" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;high order highpass filter membuat efek seperti riak air pada image:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_2wMGiZdjuiw/SC_d7qGhJ3I/AAAAAAAAAFQ/0yfobN-TBIw/s1600-h/highpassffthighfreq.png"&gt;&lt;img style="cursor: pointer;" src="http://1.bp.blogspot.com/_2wMGiZdjuiw/SC_d7qGhJ3I/AAAAAAAAAFQ/0yfobN-TBIw/s320/highpassffthighfreq.png" alt="" id="BLOGGER_PHOTO_ID_5201620111619860338" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_2wMGiZdjuiw/SC_eFaGhJ4I/AAAAAAAAAFY/YliifQMnwmg/s1600-h/highpassffthighspac.png"&gt;&lt;img style="cursor: pointer;" src="http://4.bp.blogspot.com/_2wMGiZdjuiw/SC_eFaGhJ4I/AAAAAAAAAFY/YliifQMnwmg/s320/highpassffthighspac.png" alt="" id="BLOGGER_PHOTO_ID_5201620279123584898" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_2wMGiZdjuiw/SC_7G6GhKQI/AAAAAAAAAIU/saP_3gsUHbQ/s1600-h/newhighpassffthigh.png"&gt;&lt;img style="cursor: pointer;" src="http://2.bp.blogspot.com/_2wMGiZdjuiw/SC_7G6GhKQI/AAAAAAAAAIU/saP_3gsUHbQ/s320/newhighpassffthigh.png" alt="" id="BLOGGER_PHOTO_ID_5201652190730594562" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;low order pada highpass filter mempertegas batas image:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_2wMGiZdjuiw/SC_eOqGhJ5I/AAAAAAAAAFg/4kYmts_INEY/s1600-h/highpassfftlowfreq.png"&gt;&lt;img style="cursor: pointer;" src="http://1.bp.blogspot.com/_2wMGiZdjuiw/SC_eOqGhJ5I/AAAAAAAAAFg/4kYmts_INEY/s320/highpassfftlowfreq.png" alt="" id="BLOGGER_PHOTO_ID_5201620438037374866" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_2wMGiZdjuiw/SC_eZKGhJ6I/AAAAAAAAAFo/nwzqRtRwrKo/s1600-h/highpassfftlowspac.png"&gt;&lt;img style="cursor: pointer; width: 320px; height: 240px;" src="http://3.bp.blogspot.com/_2wMGiZdjuiw/SC_eZKGhJ6I/AAAAAAAAAFo/nwzqRtRwrKo/s320/highpassfftlowspac.png" alt="" id="BLOGGER_PHOTO_ID_5201620618426001314" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_2wMGiZdjuiw/SC_7RKGhKRI/AAAAAAAAAIc/Ho2yn8kL5yU/s1600-h/newhighpassfftlow.png"&gt;&lt;img style="cursor: pointer;" src="http://3.bp.blogspot.com/_2wMGiZdjuiw/SC_7RKGhKRI/AAAAAAAAAIc/Ho2yn8kL5yU/s320/newhighpassfftlow.png" alt="" id="BLOGGER_PHOTO_ID_5201652366824253714" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;high order lowpass filter membuat efek riak air dan mempertegas batas pada image:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_2wMGiZdjuiw/SC_48KGhKKI/AAAAAAAAAHk/3E12SJVe6Zo/s1600-h/lowpassffthighfreq.png"&gt;&lt;img style="cursor: pointer;" src="http://3.bp.blogspot.com/_2wMGiZdjuiw/SC_48KGhKKI/AAAAAAAAAHk/3E12SJVe6Zo/s320/lowpassffthighfreq.png" alt="" id="BLOGGER_PHOTO_ID_5201649807023745186" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_2wMGiZdjuiw/SC_5YKGhKLI/AAAAAAAAAHs/Mss5e32R4rc/s1600-h/lowpassffthighspac.png"&gt;&lt;img style="cursor: pointer;" src="http://3.bp.blogspot.com/_2wMGiZdjuiw/SC_5YKGhKLI/AAAAAAAAAHs/Mss5e32R4rc/s320/lowpassffthighspac.png" alt="" id="BLOGGER_PHOTO_ID_5201650288060082354" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_2wMGiZdjuiw/SC_7g6GhKSI/AAAAAAAAAIk/9sJ3gjZJg8A/s1600-h/newlowpassffthigh.png"&gt;&lt;img style="cursor: pointer;" src="http://2.bp.blogspot.com/_2wMGiZdjuiw/SC_7g6GhKSI/AAAAAAAAAIk/9sJ3gjZJg8A/s320/newlowpassffthigh.png" alt="" id="BLOGGER_PHOTO_ID_5201652637407193378" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;low order lowpass filter menyebabkan image menjadi blur:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_2wMGiZdjuiw/SC_5saGhKMI/AAAAAAAAAH0/pSWPyKGdKl8/s1600-h/lowpassfftlowfreq.png"&gt;&lt;img style="cursor: pointer;" src="http://4.bp.blogspot.com/_2wMGiZdjuiw/SC_5saGhKMI/AAAAAAAAAH0/pSWPyKGdKl8/s320/lowpassfftlowfreq.png" alt="" id="BLOGGER_PHOTO_ID_5201650635952433346" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_2wMGiZdjuiw/SC_56qGhKNI/AAAAAAAAAH8/rhH6nxw9Hxk/s1600-h/lowpassfftlowspac.png"&gt;&lt;img style="cursor: pointer;" src="http://1.bp.blogspot.com/_2wMGiZdjuiw/SC_56qGhKNI/AAAAAAAAAH8/rhH6nxw9Hxk/s320/lowpassfftlowspac.png" alt="" id="BLOGGER_PHOTO_ID_5201650880765569234" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_2wMGiZdjuiw/SC_7q6GhKTI/AAAAAAAAAIs/IMThb1VGWOU/s1600-h/newlowpassfftlow.png"&gt;&lt;img style="cursor: pointer;" src="http://2.bp.blogspot.com/_2wMGiZdjuiw/SC_7q6GhKTI/AAAAAAAAAIs/IMThb1VGWOU/s320/newlowpassfftlow.png" alt="" id="BLOGGER_PHOTO_ID_5201652809205885234" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;listing of porto4.m:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:arial;font-size:85%;"  &gt;&lt;br /&gt;function portofolio4 = porto4(img)&lt;br /&gt;im = imread(img);&lt;br /&gt;im = rgb2gray(im);&lt;br /&gt;&lt;br /&gt;lowpassffthigh   = lowpassfilter(size(im), 0.05, 50);&lt;br /&gt;highpassffthigh  = highpassfilter(size(im), 0.05, 50);&lt;br /&gt;highboostfft     = highboostfilter(size(im), 0.05, 50, 0.5);&lt;br /&gt;lowpassfftlow    = lowpassfilter(size(im), 0.05, 1);&lt;br /&gt;highpassfftlow   = highpassfilter(size(im), 0.05, 1);&lt;br /&gt;&lt;br /&gt;imfft = fft2(im);&lt;br /&gt;&lt;br /&gt;surfl(fftshift(lowpassffthigh)), shading interp;&lt;br /&gt;print -dpng lowpassffthighfreq.png&lt;br /&gt;surfl(fftshift(highpassffthigh)), shading interp;&lt;br /&gt;print -dpng highpassffthighfreq.png&lt;br /&gt;surfl(fftshift(highboostfft)), shading interp;&lt;br /&gt;print -dpng highboostfftfreq.png&lt;br /&gt;surfl(fftshift(lowpassfftlow)), shading interp;&lt;br /&gt;print -dpng lowpassfftlowfreq.png&lt;br /&gt;surfl(fftshift(highpassfftlow)), shading interp;&lt;br /&gt;print -dpng highpassfftlowfreq.png&lt;br /&gt;&lt;br /&gt;surfl(fftshift(real(ifft2(lowpassffthigh)))), shading interp;&lt;br /&gt;print -dpng lowpassffthighspac.png&lt;br /&gt;surfl(fftshift(real(ifft2(highpassffthigh)))), shading interp;&lt;br /&gt;print -dpng highpassffthighspac.png&lt;br /&gt;surfl(fftshift(real(ifft2(highboostfft)))), shading interp;&lt;br /&gt;print -dpng highboostfftspac.png&lt;br /&gt;surfl(fftshift(real(ifft2(lowpassfftlow)))), shading interp;&lt;br /&gt;print -dpng lowpassfftlowspac.png&lt;br /&gt;surfl(fftshift(real(ifft2(highpassfftlow)))), shading interp;&lt;br /&gt;print -dpng highpassfftlowspac.png&lt;br /&gt;&lt;br /&gt;newlowpassffthigh  = lowpassffthigh.*imfft;&lt;br /&gt;newhighpassffthigh = highpassffthigh.*imfft;&lt;br /&gt;newhighboostfft    = highboostfft.*imfft;&lt;br /&gt;newlowpassfftlow   = lowpassfftlow.*imfft;&lt;br /&gt;newhighpassfftlow  = highpassfftlow.*imfft;&lt;br /&gt;&lt;br /&gt;figure,imagesc(real(ifft2(newlowpassffthigh))),title('lowpassffthigh'),colormap gray;&lt;br /&gt;figure,imagesc(real(ifft2(newhighpassffthigh))),title('highpassffthigh'),colormap gray;&lt;br /&gt;figure,imagesc(real(ifft2(newhighboostfft))),title('highboostfft'),colormap gray;&lt;br /&gt;figure,imagesc(real(ifft2(newlowpassfftlow))),title('lowpassfftlow'),colormap gray;&lt;br /&gt;figure,imagesc(real(ifft2(newhighpassfftlow))),title('highpassfftlow'),colormap gray;&lt;br /&gt;figure,imagesc(im),title('im'),colormap gray;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7509220249568087529-2632735555620265367?l=yudhaaditya.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yudhaaditya.blogspot.com/feeds/2632735555620265367/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7509220249568087529&amp;postID=2632735555620265367' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7509220249568087529/posts/default/2632735555620265367'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7509220249568087529/posts/default/2632735555620265367'/><link rel='alternate' type='text/html' href='http://yudhaaditya.blogspot.com/2008/05/portofolio-4.html' title='Portofolio 4'/><author><name>Yudha Aditya</name><uri>http://www.blogger.com/profile/12303333565227862899</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_2wMGiZdjuiw/SC_6J6GhKOI/AAAAAAAAAIE/SfEtQdLDr0I/s72-c/myPhoto.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7509220249568087529.post-1980541110245509875</id><published>2008-05-17T22:42:00.001-07:00</published><updated>2008-05-18T04:45:30.642-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='portofolio 3'/><title type='text'>Portofolio 3</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_2wMGiZdjuiw/SC_Y_qGhJuI/AAAAAAAAAEQ/K2AoPpSbqEc/s1600-h/myPhoto.JPG"&gt;&lt;img style="cursor: pointer;" src="http://1.bp.blogspot.com/_2wMGiZdjuiw/SC_Y_qGhJuI/AAAAAAAAAEQ/K2AoPpSbqEc/s320/myPhoto.JPG" alt="" id="BLOGGER_PHOTO_ID_5201614682781198050" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;font-size:85%;"  &gt;MyPhoto.jpg&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_2wMGiZdjuiw/SC_WuKGhJnI/AAAAAAAAADc/aSv30LHd_zM/s1600-h/image_frek50.png"&gt;&lt;img style="cursor: pointer;" src="http://3.bp.blogspot.com/_2wMGiZdjuiw/SC_WuKGhJnI/AAAAAAAAADc/aSv30LHd_zM/s320/image_frek50.png" alt="" id="BLOGGER_PHOTO_ID_5201612183110231666" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;&lt;span style="font-family:arial;"&gt;im = imread('myPhoto.jpg')&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;recon = freqcomp(im, 50, 0)&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_2wMGiZdjuiw/SC_W_6GhJoI/AAAAAAAAADk/nDxMvtdo8hU/s1600-h/image_frek150.png"&gt;&lt;img style="cursor: pointer;" src="http://2.bp.blogspot.com/_2wMGiZdjuiw/SC_W_6GhJoI/AAAAAAAAADk/nDxMvtdo8hU/s320/image_frek150.png" alt="" id="BLOGGER_PHOTO_ID_5201612488052909698" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;recon = freqcomp(im, 150, 0)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Gaussian Filter:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_2wMGiZdjuiw/SC_CmKGhJeI/AAAAAAAAACU/o1Zk-H7Jjtg/s1600-h/im.png"&gt;&lt;img style="cursor: pointer;" src="http://3.bp.blogspot.com/_2wMGiZdjuiw/SC_CmKGhJeI/AAAAAAAAACU/o1Zk-H7Jjtg/s320/im.png" alt="" id="BLOGGER_PHOTO_ID_5201590055438722530" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_2wMGiZdjuiw/SC_XWaGhJpI/AAAAAAAAADs/pacd1w2vHEM/s1600-h/imfft.png"&gt;&lt;img style="cursor: pointer;" src="http://4.bp.blogspot.com/_2wMGiZdjuiw/SC_XWaGhJpI/AAAAAAAAADs/pacd1w2vHEM/s320/imfft.png" alt="" id="BLOGGER_PHOTO_ID_5201612874599966354" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_2wMGiZdjuiw/SC_CJaGhJcI/AAAAAAAAACE/6HaDzz6suWw/s1600-h/gafilt.png"&gt;&lt;img style="cursor: pointer;" src="http://4.bp.blogspot.com/_2wMGiZdjuiw/SC_CJaGhJcI/AAAAAAAAACE/6HaDzz6suWw/s320/gafilt.png" alt="" id="BLOGGER_PHOTO_ID_5201589561517483458" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_2wMGiZdjuiw/SC_CRqGhJdI/AAAAAAAAACM/rlJhmbu9_EE/s1600-h/gavfiltfft.png"&gt;&lt;img style="cursor: pointer;" src="http://1.bp.blogspot.com/_2wMGiZdjuiw/SC_CRqGhJdI/AAAAAAAAACM/rlJhmbu9_EE/s320/gavfiltfft.png" alt="" id="BLOGGER_PHOTO_ID_5201589703251404242" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_2wMGiZdjuiw/SC_a36GhJzI/AAAAAAAAAE0/7TxhBNHhxPk/s1600-h/newimgavfft.png"&gt;&lt;img style="cursor: pointer;" src="http://2.bp.blogspot.com/_2wMGiZdjuiw/SC_a36GhJzI/AAAAAAAAAE0/7TxhBNHhxPk/s320/newimgavfft.png" alt="" id="BLOGGER_PHOTO_ID_5201616748660467506" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_2wMGiZdjuiw/SC_ZxqGhJxI/AAAAAAAAAEo/S0aq8PNOnE8/s1600-h/newimgav.png"&gt;&lt;img style="cursor: pointer;" src="http://1.bp.blogspot.com/_2wMGiZdjuiw/SC_ZxqGhJxI/AAAAAAAAAEo/S0aq8PNOnE8/s320/newimgav.png" alt="" id="BLOGGER_PHOTO_ID_5201615541774657298" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;font-size:85%;"  &gt;gaussfilter = gaussian('myPhoto.jpg')&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Average Filter:&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_2wMGiZdjuiw/SC_FPKGhJmI/AAAAAAAAADU/n1-lxFmJsDo/s1600-h/image_asli_ga.png"&gt;&lt;img style="cursor: pointer;" src="http://3.bp.blogspot.com/_2wMGiZdjuiw/SC_FPKGhJmI/AAAAAAAAADU/n1-lxFmJsDo/s320/image_asli_ga.png" alt="" id="BLOGGER_PHOTO_ID_5201592958836614754" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_2wMGiZdjuiw/SC_Xm6GhJqI/AAAAAAAAAD0/vzr73HhIHSE/s1600-h/imfftav.png"&gt;&lt;img style="cursor: pointer;" src="http://2.bp.blogspot.com/_2wMGiZdjuiw/SC_Xm6GhJqI/AAAAAAAAAD0/vzr73HhIHSE/s320/imfftav.png" alt="" id="BLOGGER_PHOTO_ID_5201613158067807906" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_2wMGiZdjuiw/SC_B4KGhJaI/AAAAAAAAAB0/vuBVFmMmWAo/s1600-h/avfilt.png"&gt;&lt;img style="cursor: pointer;" src="http://3.bp.blogspot.com/_2wMGiZdjuiw/SC_B4KGhJaI/AAAAAAAAAB0/vuBVFmMmWAo/s320/avfilt.png" alt="" id="BLOGGER_PHOTO_ID_5201589265164740002" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_2wMGiZdjuiw/SC_B_aGhJbI/AAAAAAAAAB8/h3pM2S2X5K4/s1600-h/avfiltfft.png"&gt;&lt;img style="cursor: pointer;" src="http://4.bp.blogspot.com/_2wMGiZdjuiw/SC_B_aGhJbI/AAAAAAAAAB8/h3pM2S2X5K4/s320/avfiltfft.png" alt="" id="BLOGGER_PHOTO_ID_5201589389718791602" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_2wMGiZdjuiw/SC_ZjqGhJwI/AAAAAAAAAEg/K-DGm0ntV3o/s1600-h/newimavfft.png"&gt;&lt;img style="cursor: pointer;" src="http://1.bp.blogspot.com/_2wMGiZdjuiw/SC_ZjqGhJwI/AAAAAAAAAEg/K-DGm0ntV3o/s320/newimavfft.png" alt="" id="BLOGGER_PHOTO_ID_5201615301256488706" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_2wMGiZdjuiw/SC_ZRaGhJvI/AAAAAAAAAEY/pz7TltXzgYA/s1600-h/newimav.png"&gt;&lt;img style="cursor: pointer;" src="http://4.bp.blogspot.com/_2wMGiZdjuiw/SC_ZRaGhJvI/AAAAAAAAAEY/pz7TltXzgYA/s320/newimav.png" alt="" id="BLOGGER_PHOTO_ID_5201614987723876082" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;&lt;span style="font-family:arial;"&gt;avfilt = Average('myPhoto.jpg')&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;pertukaran nilai fase:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_2wMGiZdjuiw/SC_C66GhJfI/AAAAAAAAACc/n6XpnB347Wk/s1600-h/im1.png"&gt;&lt;img style="cursor: pointer;" src="http://2.bp.blogspot.com/_2wMGiZdjuiw/SC_C66GhJfI/AAAAAAAAACc/n6XpnB347Wk/s320/im1.png" alt="" id="BLOGGER_PHOTO_ID_5201590411921008114" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-family: arial;font-size:85%;" &gt;im1&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_2wMGiZdjuiw/SDATG6GhKeI/AAAAAAAAAKE/RDME7307f1A/s1600-h/im2.png"&gt;&lt;img style="cursor: pointer;" src="http://3.bp.blogspot.com/_2wMGiZdjuiw/SDATG6GhKeI/AAAAAAAAAKE/RDME7307f1A/s320/im2.png" alt="" id="BLOGGER_PHOTO_ID_5201678579009661410" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;font-size:85%;" &gt;&lt;span style="font-weight: bold;"&gt;im2&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold; font-family: arial;font-size:85%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_2wMGiZdjuiw/SC_DaKGhJhI/AAAAAAAAACs/zbEY7tBPXsQ/s1600-h/im1phase_im2mag.png"&gt;&lt;img style="cursor: pointer;" src="http://3.bp.blogspot.com/_2wMGiZdjuiw/SC_DaKGhJhI/AAAAAAAAACs/zbEY7tBPXsQ/s320/im1phase_im2mag.png" alt="" id="BLOGGER_PHOTO_ID_5201590948791920146" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_2wMGiZdjuiw/SC_DMKGhJgI/AAAAAAAAACk/t_0STlkQpHs/s1600-h/im1mag_im2phase.png"&gt;&lt;img style="cursor: pointer;" src="http://3.bp.blogspot.com/_2wMGiZdjuiw/SC_DMKGhJgI/AAAAAAAAACk/t_0STlkQpHs/s320/im1mag_im2phase.png" alt="" id="BLOGGER_PHOTO_ID_5201590708273751554" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family: arial;font-size:85%;" &gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;portofolio3 = no4('me1.jpg','me2.jpg')&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold; font-family: arial;font-size:85%;" &gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_2wMGiZdjuiw/SC_ESqGhJkI/AAAAAAAAADE/y2C_jVI_to0/s1600-h/im2phaseonly.png"&gt;&lt;img style="cursor: pointer;" src="http://1.bp.blogspot.com/_2wMGiZdjuiw/SC_ESqGhJkI/AAAAAAAAADE/y2C_jVI_to0/s320/im2phaseonly.png" alt="" id="BLOGGER_PHOTO_ID_5201591919454529090" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_2wMGiZdjuiw/SC_DvKGhJiI/AAAAAAAAAC0/BLU4ceS8abA/s1600-h/im1phaseonly.png"&gt;&lt;img style="cursor: pointer;" src="http://3.bp.blogspot.com/_2wMGiZdjuiw/SC_DvKGhJiI/AAAAAAAAAC0/BLU4ceS8abA/s320/im1phaseonly.png" alt="" id="BLOGGER_PHOTO_ID_5201591309569173026" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-family: arial;font-size:85%;" &gt;portofolio3 = no5('me1.jpg','me2.jpg')&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: arial;font-size:85%;" &gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Listing of freecomp.m:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;% FREQCOMP - Demonstrates image reconstruction from Fourier components&lt;br /&gt;%&lt;br /&gt;% Usage:  recon = freqcomp(im, Npts, delay)&lt;br /&gt;%&lt;br /&gt;% Arguments:      im    - Image to be reconstructed.&lt;br /&gt;%                 Npts  - Number of frequency components to consider&lt;br /&gt;%                         (defaults to 50).&lt;br /&gt;%                 delay - Optional time delay between animations of the&lt;br /&gt;%                         reconstruction. If this is omitted the function&lt;br /&gt;%                         waits for a key to be pressed before moving to&lt;br /&gt;%                         the next component.&lt;br /&gt;%&lt;br /&gt;% Returns:        recon - The image reconstructed from the specified&lt;br /&gt;%                         number of components&lt;br /&gt;%&lt;br /&gt;% This program displays:&lt;br /&gt;%&lt;br /&gt;%    * The image.&lt;br /&gt;%    * The Fourier transform (spectrum) of the image with a conjugate&lt;br /&gt;%      pair of Fourier components marked with red dots.&lt;br /&gt;%    * The sine wave basis function that corresponds to the Fourier&lt;br /&gt;%      transform pair marked in the image above. &lt;br /&gt;%    * The reconstruction of the image generated from the sum of the sine&lt;br /&gt;%      wave basis functions considered so far.&lt;br /&gt;&lt;br /&gt;% Copyright (c) 2002-2003 Peter Kovesi&lt;br /&gt;% School of Computer Science &amp;amp; Software Engineering&lt;br /&gt;% The University of Western Australia&lt;br /&gt;% http://www.csse.uwa.edu.au/&lt;br /&gt;%&lt;br /&gt;% Permission is hereby granted, free of charge, to any person obtaining a copy&lt;br /&gt;% of this software and associated documentation files (the "Software"), to deal&lt;br /&gt;% in the Software without restriction, subject to the following conditions:&lt;br /&gt;%&lt;br /&gt;% The above copyright notice and this permission notice shall be included in&lt;br /&gt;% all copies or substantial portions of the Software.&lt;br /&gt;%&lt;br /&gt;% The Software is provided "as is", without warranty of any kind.&lt;br /&gt;&lt;br /&gt;% March 2002 - Original version&lt;br /&gt;% April 2003 - General cleanup of code&lt;br /&gt;&lt;br /&gt;function recon = freqcomp(im, Npts, delay)&lt;br /&gt;    if ndims(im) == 3&lt;br /&gt;    im = rgb2gray(im);&lt;br /&gt;    warning('converting colour image to greyscale');&lt;br /&gt;    end&lt;br /&gt;   &lt;br /&gt;    if nargin &lt; 2&lt;br /&gt;    Npts = 50;&lt;br /&gt;    end&lt;br /&gt;   &lt;br /&gt;    [rows,cols] = size(im);&lt;br /&gt;   &lt;br /&gt;    % If necessary crop one row and/or column so that there are an even&lt;br /&gt;    % number of rows and columns, this makes things easier later.&lt;br /&gt;    if mod(rows,2) % odd&lt;br /&gt;    rows = rows-1;&lt;br /&gt;    end&lt;br /&gt;    if mod(cols,2) % odd&lt;br /&gt;    cols = cols-1;&lt;br /&gt;    end&lt;br /&gt;&lt;br /&gt;    im = im(1:rows,1:cols);&lt;br /&gt;    rc = fix(rows/2)+1;      % Centre point&lt;br /&gt;    cc = fix(cols/2)+1;&lt;br /&gt;&lt;br /&gt;    % The following code constructs two arrays of coordinates within the FFT&lt;br /&gt;    % of the image that correspond to complex conjugate pairs of points that&lt;br /&gt;    % spiral out from the centre visiting every frequency component on&lt;br /&gt;    % the way.&lt;br /&gt;    p1 = zeros(Npts,2);    % Path 1&lt;br /&gt;    p2 = zeros(Npts,2);    % Path 2&lt;br /&gt;   &lt;br /&gt;    m = zeros(rows,cols);  % Matrix for marking visited points&lt;br /&gt;    m(rc,cc) = 1;&lt;br /&gt;    m(rc,cc-1) = 1;&lt;br /&gt;    m(rc,cc+1) = 1;   &lt;br /&gt;   &lt;br /&gt;    p1(1,:) = [rc cc-1];&lt;br /&gt;    p2(1,:) = [rc cc+1];   &lt;br /&gt;    d1 = [0 -1];  % initial directions of the paths&lt;br /&gt;    d2 = [0  1];&lt;br /&gt;   &lt;br /&gt;    % Mark out two symmetric spiral paths out from the centre (I wish I&lt;br /&gt;    % could think of a neater way of doing this)&lt;br /&gt;   &lt;br /&gt;    for n = 2:Npts&lt;br /&gt;    l1 = [-d1(2) d1(1)];  % left direction&lt;br /&gt;    l2 = [-d2(2) d2(1)];   &lt;br /&gt;   &lt;br /&gt;    lp1 = p1(n-1,:) + l1; % coords of point in left direction&lt;br /&gt;    lp2 = p2(n-1,:) + l2;   &lt;br /&gt;   &lt;br /&gt;    if ~m(lp1(1), lp1(2)) % go left&lt;br /&gt;        p1(n,:) = lp1;&lt;br /&gt;        d1 = l1;&lt;br /&gt;        m(p1(n,1), p1(n,2)) = 1; % mark point as visited&lt;br /&gt;    else  % go sraight ahead&lt;br /&gt;        p1(n,:) = p1(n-1,:) + d1;&lt;br /&gt;        m(p1(n,1), p1(n,2)) = 1; % mark point as visited&lt;br /&gt;    end&lt;br /&gt;&lt;br /&gt;    if ~m(lp2(1), lp2(2)) % go left&lt;br /&gt;        p2(n,:) = lp2;&lt;br /&gt;        d2 = l2;&lt;br /&gt;        m(p2(n,1), p2(n,2)) = 1; % mark point as visited&lt;br /&gt;    else  % go sraight ahead&lt;br /&gt;        p2(n,:) = p2(n-1,:) + d2;&lt;br /&gt;        m(p2(n,1), p2(n,2)) = 1; % mark point as visited&lt;br /&gt;    end&lt;br /&gt;   &lt;br /&gt;    end&lt;br /&gt;   &lt;br /&gt;    % Having constructed the path of frequency components to be visited&lt;br /&gt;    % we take the FFT of the image and then enter a loop that&lt;br /&gt;    % incrementally reconstructs the image from its components.&lt;br /&gt;   &lt;br /&gt;    IM = fftshift(fft2(im));&lt;br /&gt;    recon = zeros(rows,cols);       % Initialise reconstruction matrix&lt;br /&gt;      &lt;br /&gt;    if max(rows,cols) &lt; 150&lt;br /&gt;    fontsze = 7;&lt;br /&gt;    else&lt;br /&gt;    fontsze = 10;&lt;br /&gt;    end&lt;br /&gt;   &lt;br /&gt;    figure(1), clf&lt;br /&gt;    subplot(2,2,1),imagesc(im),colormap gray, axis image, axis off&lt;br /&gt;    title('Original Image','FontSize',fontsze);&lt;br /&gt;    subplot(2,2,2),imagesc(log(abs(IM))),colormap gray, axis image&lt;br /&gt;    axis off,   title('Fourier Transform + frequency component pair','FontSize',fontsze);&lt;br /&gt;   &lt;br /&gt;    warning off % Turn off warnings that might arise if the images cannot be&lt;br /&gt;                % displayed full size&lt;br /&gt;    truesize(1)&lt;br /&gt;&lt;br /&gt;    for n = 1:Npts&lt;br /&gt;     &lt;br /&gt;      % Extract the pair of Fourier components&lt;br /&gt;      F = zeros(rows,cols);&lt;br /&gt;      F(p1(n,1), p1(n,2)) = IM(p1(n,1), p1(n,2));&lt;br /&gt;      F(p2(n,1), p2(n,2)) = IM(p2(n,1), p2(n,2));     &lt;br /&gt;     &lt;br /&gt;      % Invert and add  to reconstruction&lt;br /&gt;      f = real(ifft2(fftshift(F)));&lt;br /&gt;      recon = recon+f;&lt;br /&gt;     &lt;br /&gt;      % Display results&lt;br /&gt;      subplot(2,2,2),imagesc(log(abs(IM))),colormap gray, axis image&lt;br /&gt;          axis off,  title('Fourier Transform + frequency component pair','FontSize',fontsze);&lt;br /&gt;      hold on, plot([p1(n,2), p2(n,2)], [p1(n,1), p2(n,1)],'r.'); hold  off&lt;br /&gt;      subplot(2,2,3),imagesc(recon),colormap gray, axis image, axis off, title('Reconstruction','FontSize',fontsze);&lt;br /&gt;      subplot(2,2,4),imagesc(f),colormap gray, axis image, axis off&lt;br /&gt;      title('Basis function corresponding to frequency component pair','FontSize',fontsze);     &lt;br /&gt;&lt;br /&gt;      if nargin == 3&lt;br /&gt;          pause(delay);&lt;br /&gt;      else&lt;br /&gt;          fprintf('Hit any key to continue \n'); pause&lt;br /&gt;      end&lt;br /&gt;     &lt;br /&gt;    end&lt;br /&gt;   &lt;br /&gt;    warning on  % Restore warnings&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;listing of gaussian.m:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;function gaussfilter = gaussian(img)&lt;br /&gt;%gaussian filter&lt;br /&gt;im = imread(img);&lt;br /&gt;im = imresize(im,0.5)&lt;br /&gt;im = rgb2gray(im);&lt;br /&gt;&lt;br /&gt;gaussianfilter = fspecial('gaussian', size(im), 6);&lt;br /&gt;imfft = fft2(im);&lt;br /&gt;gaussianfilterfft = fft2(gaussianfilter);&lt;br /&gt;&lt;br /&gt;newimagegafft = gaussianfilterfft.*imfft;&lt;br /&gt;&lt;br /&gt;figure,imshow(im);&lt;br /&gt;figure,imagesc(gaussianfilter),title('Gaussian filter'),colormap gray;&lt;br /&gt;figure,imagesc(fftshift(log(abs(imfft)+eps))),title('FFT'),colormap gray;&lt;br /&gt;figure,imagesc(fftshift(log(abs(gaussianfilterfft)+eps))),title('Gaussian filter FFT'),colormap gray;&lt;br /&gt;figure,imagesc(fftshift(log(abs(newimagegafft)+eps))),title('Gaussian filter kali FFT'),colormap gray;&lt;br /&gt;figure,imagesc(fftshift(real(ifft2(newimagegafft)))),title('smoothing'),colormap gray;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;listing of average.m:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;function avfilt = Average(img)&lt;br /&gt;%Average filter&lt;br /&gt;im = imread(img);&lt;br /&gt;im = imresize(im,0.5);&lt;br /&gt;im = rgb2gray(im);&lt;br /&gt;averagefilt = averagefilter(im,[21 21]);&lt;br /&gt;&lt;br /&gt;imfft = fft2(im);&lt;br /&gt;averagefiltfft = fft2(averagefilt);&lt;br /&gt;imaveragefft = averagefiltfft.*imfft;&lt;br /&gt;&lt;br /&gt;figure,imshow(im);&lt;br /&gt;figure,imagesc(averagefilt),title('Average filter'),colormap gray;&lt;br /&gt;figure,imagesc(fftshift(log(abs(imfft)+eps))),title('FFT'),colormap gray;&lt;br /&gt;figure,imagesc(fftshift(log(abs(averagefiltfft)+eps))),title('Average filter FFT'),colormap gray;&lt;br /&gt;figure,imagesc(fftshift(log(abs(imaveragefft)+eps))),title('Average filter kali FFT'),colormap gray;&lt;br /&gt;figure,imagesc(fftshift(real(ifft2(imaveragefft)))),title('smoothing'),colormap gray;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;listing of averagefilter.m:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;function av = averagefilter(img,n)&lt;br /&gt;&lt;br /&gt;avefilt = fspecial('average',n);&lt;br /&gt;[rows cols]=size (img);&lt;br /&gt;av=zeros(rows,cols);&lt;br /&gt;av((floor((rows+1)/2)-floor((n(1,1)+1)/2)):(floor((rows+1)/2)+floor((n(1,1)+1)/2)),(floor((cols+1)/2)-floor((n(1,2)+1)/2)):(floor((cols+1)/2)+floor((n(1,2)+1)/2)))=avefilt(1,1);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;listing of no4.m:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;function portofolio3 = no4(img1,img2)&lt;br /&gt;im1 = imread(img1);&lt;br /&gt;im2 = imread(img2);&lt;br /&gt;% greyscale&lt;br /&gt;im1 = rgb2gray(im1);&lt;br /&gt;im2 = rgb2gray(im2);&lt;br /&gt;&lt;br /&gt;im1fft = fft2(im1);&lt;br /&gt;im2fft = fft2(im2);&lt;br /&gt;&lt;br /&gt;im1phase = angle(im1fft);&lt;br /&gt;im2phase = angle(im2fft);&lt;br /&gt;&lt;br /&gt;im1mag = abs(im1fft);&lt;br /&gt;im2mag = abs(im2fft);&lt;br /&gt;&lt;br /&gt;imagefft1 = im1mag.*(cos(im2phase) + i*sin(im2phase));&lt;br /&gt;imagefft2 = im2mag.*(cos(im1phase) + i*sin(im1phase));&lt;br /&gt;&lt;br /&gt;figure,imagesc(real(ifft2(imagefft1))),title('image1'),colormap gray;&lt;br /&gt;figure,imagesc(real(ifft2(imagefft2))),title('image2'),colormap gray;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;listing of no5.m:&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: arial;font-size:85%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: arial;font-size:85%;" &gt;function potofolio3 = no5(img1,img2)&lt;br /&gt;im1 = imread(img1);&lt;br /&gt;im2 = imread(img2);&lt;br /&gt;% greyscale&lt;br /&gt;im1 = rgb2gray(im1);&lt;br /&gt;im2 = rgb2gray(im2);&lt;br /&gt;&lt;br /&gt;im1fft = fft2(im1);&lt;br /&gt;im2fft = fft2(im2);&lt;br /&gt;&lt;br /&gt;im1mag = abs(im1fft);&lt;br /&gt;im2mag = abs(im2fft);&lt;br /&gt;&lt;br /&gt;image1phase = im1fft./im1mag;&lt;br /&gt;image2phase = im2fft./im2mag;&lt;br /&gt;&lt;br /&gt;figure,imagesc(real(ifft2(image1phase))),title('image1'),colormap gray;&lt;br /&gt;figure,imagesc(real(ifft2(image2phase))),title('image2'),colormap gray;&lt;br /&gt;&lt;br /&gt;figure,imagesc(im1),title('image1 asli'),colormap gray;&lt;br /&gt;figure,imagesc(im2),title('image2 asli'),colormap gray;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_2wMGiZdjuiw/SC_a36GhJzI/AAAAAAAAAE0/7TxhBNHhxPk/s1600-h/newimgavfft.png"&gt;&lt;br /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7509220249568087529-1980541110245509875?l=yudhaaditya.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yudhaaditya.blogspot.com/feeds/1980541110245509875/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7509220249568087529&amp;postID=1980541110245509875' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7509220249568087529/posts/default/1980541110245509875'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7509220249568087529/posts/default/1980541110245509875'/><link rel='alternate' type='text/html' href='http://yudhaaditya.blogspot.com/2008/05/portofolio-3.html' title='Portofolio 3'/><author><name>Yudha Aditya</name><uri>http://www.blogger.com/profile/12303333565227862899</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_2wMGiZdjuiw/SC_Y_qGhJuI/AAAAAAAAAEQ/K2AoPpSbqEc/s72-c/myPhoto.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7509220249568087529.post-6972716109221391521</id><published>2008-05-17T22:36:00.001-07:00</published><updated>2008-05-18T08:46:25.224-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='portofolio 2'/><title type='text'>Portofolio 2</title><content type='html'>&lt;span style="font-size:85%;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_2wMGiZdjuiw/SC_A2qGhJVI/AAAAAAAAABM/h1qOVd3TATE/s1600-h/myPhoto.JPG"&gt;&lt;img style="cursor: pointer; width: 242px; height: 235px;" src="http://1.bp.blogspot.com/_2wMGiZdjuiw/SC_A2qGhJVI/AAAAAAAAABM/h1qOVd3TATE/s320/myPhoto.JPG" alt="" id="BLOGGER_PHOTO_ID_5201588139883308370" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:85%;"  &gt;&lt;span style="font-weight: bold;"&gt;myPhoto.jpg&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_2wMGiZdjuiw/SC_BEKGhJWI/AAAAAAAAABU/Xddmb_FOBNM/s1600-h/image_blacknwhite.png"&gt;&lt;img style="cursor: pointer; width: 242px; height: 269px;" src="http://3.bp.blogspot.com/_2wMGiZdjuiw/SC_BEKGhJWI/AAAAAAAAABU/Xddmb_FOBNM/s320/image_blacknwhite.png" alt="" id="BLOGGER_PHOTO_ID_5201588371811542370" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-family:arial;font-size:85%;"  &gt;bw = myfunc('myPhoto.jpg', 0.4);&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_2wMGiZdjuiw/SC_BNaGhJXI/AAAAAAAAABc/f6op9zBSM60/s1600-h/Photo_closing.png"&gt;&lt;img style="cursor: pointer; width: 303px; height: 320px;" src="http://4.bp.blogspot.com/_2wMGiZdjuiw/SC_BNaGhJXI/AAAAAAAAABc/f6op9zBSM60/s320/Photo_closing.png" alt="" id="BLOGGER_PHOTO_ID_5201588530725332338" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;strel = circularstruct(2);&lt;br /&gt;imclose(bw,strel);&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size:85%;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_2wMGiZdjuiw/SC_BmqGhJZI/AAAAAAAAABs/5hPABsS9Pds/s1600-h/Photo_opening.png"&gt;&lt;img style="cursor: pointer;" src="http://1.bp.blogspot.com/_2wMGiZdjuiw/SC_BmqGhJZI/AAAAAAAAABs/5hPABsS9Pds/s320/Photo_opening.png" alt="" id="BLOGGER_PHOTO_ID_5201588964517029266" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;imopen(bw, strel);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_2wMGiZdjuiw/SDAJF6GhKdI/AAAAAAAAAJ8/P0ACo0SNNz8/s1600-h/Photo_open-closing.png"&gt;&lt;img style="cursor: pointer;" src="http://3.bp.blogspot.com/_2wMGiZdjuiw/SDAJF6GhKdI/AAAAAAAAAJ8/P0ACo0SNNz8/s320/Photo_open-closing.png" alt="" id="BLOGGER_PHOTO_ID_5201667566713514450" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;tugas3_1= openclose (bw, 2)&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_2wMGiZdjuiw/SDAI16GhKcI/AAAAAAAAAJ0/XvdS5QE5fno/s1600-h/Photo_closing-opening.png"&gt;&lt;img style="cursor: pointer; width: 276px; height: 290px;" src="http://3.bp.blogspot.com/_2wMGiZdjuiw/SDAI16GhKcI/AAAAAAAAAJ0/XvdS5QE5fno/s320/Photo_closing-opening.png" alt="" id="BLOGGER_PHOTO_ID_5201667291835607490" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-family:arial;font-size:85%;"  &gt;tugas3_2 = closeopen (bw, 2)&lt;/span&gt;&lt;span style=";font-family:arial;font-size:85%;"  &gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:100%;"  &gt;&lt;span style=""&gt;&lt;span style="font-weight: bold;"&gt;listing of myfunc.m:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;function bw = myfunc(im, thresh)&lt;br /&gt;image = imread(im);&lt;br /&gt;g = rgb2gray(image);&lt;br /&gt;bw = im2bw(image,thresh);&lt;br /&gt;imshow(bw)&lt;br /&gt;imwrite(bw,'image_blacknwhite.png');&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:100%;"  &gt;&lt;span style=""&gt;&lt;span style="font-weight: bold;"&gt;listing of tugas3_1.m:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;function tugas3_1 = openclose (image, radius)&lt;br /&gt;strel = circularstruct(radius);&lt;br /&gt;openclose = imclose(imopen(image, strel),strel);&lt;br /&gt;imshow(openclose);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:100%;"  &gt;&lt;span style=""&gt;&lt;span style="font-weight: bold;"&gt;listing of tugas 3-2.m:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;function tugas3_2 = closeopen (image, radius)&lt;br /&gt;strel = circularstruct(radius);&lt;br /&gt;closeopen = imopen(imclose(image, strel),strel);&lt;br /&gt;imshow(closeopen);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;listing &lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:100%;"  &gt;&lt;span style="font-weight: bold;"&gt;of ciscularstruct.m:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:100%;"  &gt;&lt;span style=""&gt;% CIRCULARSTRUCT&lt;/span&gt;&lt;br /&gt;&lt;span style=""&gt;%&lt;/span&gt;&lt;br /&gt;&lt;span style=""&gt;% Function to construct a circular structuring element&lt;/span&gt;&lt;br /&gt;&lt;span style=""&gt;% for morphological operations.&lt;/span&gt;&lt;br /&gt;&lt;span style=""&gt;%&lt;/span&gt;&lt;br /&gt;&lt;span style=""&gt;% function strel = circularstruct(radius)&lt;/span&gt;&lt;br /&gt;&lt;span style=""&gt;%&lt;/span&gt;&lt;br /&gt;&lt;span style=""&gt;% Note radius can be a floating point value though the resulting&lt;/span&gt;&lt;br /&gt;&lt;span style=""&gt;% circle will be a discrete approximation&lt;/span&gt;&lt;br /&gt;&lt;span style=""&gt;%&lt;/span&gt;&lt;br /&gt;&lt;span style=""&gt;% Peter Kovesi   March 2000&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;function strel = circularstruct(radius)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;if radius &lt;&gt;&lt;br /&gt;error('radius must be &gt;= 1');&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;dia = ceil(2*radius);  % Diameter of structuring element&lt;br /&gt;&lt;br /&gt;if mod(dia,2) == 0     % If diameter is a odd value&lt;br /&gt;dia = dia + 1;        % add 1 to generate a `centre pixel'&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;r = fix(dia/2);&lt;br /&gt;x = ones(dia,1)*[-r:r];    % Matrix with each pixel set to its x coordinate relative to the centre&lt;br /&gt;y = [-r:r]'*ones(1,dia);   %   "     "     "    "    "  "   "  y    "         "       "   "   "&lt;br /&gt;rad = sqrt(x.^2 + y.^2);   %   "     "     "    "    "  "   "  radius from the middle&lt;br /&gt;strel = rad&lt;=radius    &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style=";font-family:arial;font-size:85%;"  &gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;listing of locatelandmarks.m:&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;% LOCATELANDMARKS - locates landmarks on SURF form&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;%&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;% Usage:  [tl, tr, bl, br] = locatelandmarks(im)&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;%&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;% Argument: im - Image to be processed, assumed binary.&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;%&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;% Returns:  tl, tr, bl, br&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;%              - Coordinates of the centroids of the top-left, top-right,&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;%                bottom-left and bottom-right landmarks respectively.  &lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;%                These coordinates are returned as column vectors in the&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;%                form [row; col] for each landmark.&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;%&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;% The function should also display the image with the centroids of the &lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;% landmarks overlayed.&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;function [tl, tr, bl, br] = locatelandmarks(im)&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;image = imread(im)&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;[rows,cols] = size(image);&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;    &lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;    % menginisialisasi koordinat landmark&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;    tl=[rows;cols];&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;    tr=[rows;0   ];&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;    bl=[0   ;cols];&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;    br=[0   ;0   ];&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;    &lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;    bw = ~image;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;    &lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;    a = 8/784; %faktor skala&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;    &lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;    SE = ones(a*rows, a*cols);&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;    %lakukan close-open&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;    closeopen = imopen(imclose(bw,SE),SE);&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;    &lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;    % matrix yang setiap pixelnya di set untuk setiap x koordinat&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;    x = ones(rows,1)*[1:cols];&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt; &lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;    % matrix yang setiap pixelnya di set untuk setiap x koordinat&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;    y = [1:rows]'*ones(1,cols);&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;    &lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;    % melabeli semua blob&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;    [L, num] = bwlabel(closeopen);&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;    &lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;    % mencari blob untuk menentukan titik tengah&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;    for i = 1:num&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;        img = L==i;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;        area(i) = sum(sum(img));&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;        meanx = sum(sum(double(img).*x))/area(i);&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;        meany = sum(sum(double(img).*y))/area(i);&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;    &lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;        % tentukan kiri atas&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;        if tl(1)+tl(2) &gt; meanx + meany&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;            tl = [meanx; meany];&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;            tlindex = i;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;        end&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;        % tentukan kanan atas&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;        if tr(1)-tr(2) &gt; meanx - meany&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;            tr = [meanx; meany];&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;            trindex = i;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;        end&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;        % tentukan kanan bawah&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;        if br(1)+br(2) &lt;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;            br = [meanx; meany];&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;            brindex = i;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;        end&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;        % tentukan kiri bawah&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;        if bl(1)-bl(2) &lt;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;            bl = [meanx; meany];&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;            blindex = i;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;        end&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;    end&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;    &lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;        imshow(image)&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;        hold;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;        landmarks = [tl, tr, br, bl];  &lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;        plot(landmarks(1,:), landmarks(2,:),'xr','MarkerSize',25,'LineWidth',2);&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;        plot(landmarks(1,:), landmarks(2,:),'or','MarkerSize',15,'LineWidth',1);&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;        hold;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;end&lt;/span&gt;&lt;span style=";font-family:arial;font-size:85%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7509220249568087529-6972716109221391521?l=yudhaaditya.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yudhaaditya.blogspot.com/feeds/6972716109221391521/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7509220249568087529&amp;postID=6972716109221391521' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7509220249568087529/posts/default/6972716109221391521'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7509220249568087529/posts/default/6972716109221391521'/><link rel='alternate' type='text/html' href='http://yudhaaditya.blogspot.com/2008/05/portofolio-2_17.html' title='Portofolio 2'/><author><name>Yudha Aditya</name><uri>http://www.blogger.com/profile/12303333565227862899</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_2wMGiZdjuiw/SC_A2qGhJVI/AAAAAAAAABM/h1qOVd3TATE/s72-c/myPhoto.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7509220249568087529.post-3709202031310921348</id><published>2008-05-16T10:16:00.000-07:00</published><updated>2008-05-16T11:25:04.813-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='portofolio 1'/><title type='text'>Portofolio 1</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_2wMGiZdjuiw/SC3IS6GhJOI/AAAAAAAAAAU/iJJKieJJTOg/s1600-h/lego1.png"&gt;&lt;img style="cursor: pointer;" src="http://4.bp.blogspot.com/_2wMGiZdjuiw/SC3IS6GhJOI/AAAAAAAAAAU/iJJKieJJTOg/s320/lego1.png" alt="" id="BLOGGER_PHOTO_ID_5201033371842585826" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;1. mengubah image jadi hitam putih &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;bw = myfunc('lego1.png', 0.6)&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_2wMGiZdjuiw/SC3IM6GhJNI/AAAAAAAAAAM/o92DMao3VcI/s1600-h/image_blacknwhite.png"&gt;&lt;img style="cursor: pointer;" src="http://4.bp.blogspot.com/_2wMGiZdjuiw/SC3IM6GhJNI/AAAAAAAAAAM/o92DMao3VcI/s320/image_blacknwhite.png" alt="" id="BLOGGER_PHOTO_ID_5201033268763370706" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:arial;font-size:85%;"  &gt;&lt;span style="font-weight: bold;"&gt;2. BWL = bwlabel(~bw)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;ob1 = BWL==1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;ob2 = BWL==2&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;ob3 = BWL==3&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[area, centroid, theta, roundness] = moments(ob1)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[area, centroid, theta, roundness] = moments(ob2)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[area, centroid, theta, roundness] = moments(ob3)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_2wMGiZdjuiw/SC3IhaGhJPI/AAAAAAAAAAc/h6vmmO_wJwI/s1600-h/moment_ob1.png"&gt;&lt;img style="cursor: pointer;" src="http://2.bp.blogspot.com/_2wMGiZdjuiw/SC3IhaGhJPI/AAAAAAAAAAc/h6vmmO_wJwI/s320/moment_ob1.png" alt="" id="BLOGGER_PHOTO_ID_5201033620950689010" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_2wMGiZdjuiw/SC3IoqGhJQI/AAAAAAAAAAk/_GEwNaME4kw/s1600-h/moment_ob2.png"&gt;&lt;img style="cursor: pointer;" src="http://3.bp.blogspot.com/_2wMGiZdjuiw/SC3IoqGhJQI/AAAAAAAAAAk/_GEwNaME4kw/s320/moment_ob2.png" alt="" id="BLOGGER_PHOTO_ID_5201033745504740610" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_2wMGiZdjuiw/SC3IxaGhJRI/AAAAAAAAAAs/QhwMbc0oFfs/s1600-h/moment_ob3.png"&gt;&lt;img style="cursor: pointer;" src="http://2.bp.blogspot.com/_2wMGiZdjuiw/SC3IxaGhJRI/AAAAAAAAAAs/QhwMbc0oFfs/s320/moment_ob3.png" alt="" id="BLOGGER_PHOTO_ID_5201033895828595986" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold; font-style: italic;font-family:arial;" &gt;Listing of &lt;a href="http://yudha.aditya47.googlepages.com/myfunc.m" title="myfunc.m"&gt;myfunc.m&lt;/a&gt; :&lt;/span&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style=";font-family:arial;font-size:85%;"  &gt;&lt;span&gt;function bw = myfunc(im, thresh)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    image = imread(im);&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    g = rgb2gray(image);&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    bw = im2bw(image,thresh);&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    imshow(bw)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;    imwrite(bw,'image_blacknwhite.png');&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span style=";font-family:arial;font-size:85%;"  &gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Listing of &lt;a href="http://yudha.aditya47.googlepages.com/moments.m" title="moments.m"&gt;moments.m&lt;/a&gt; : &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote  style="font-family:arial;"&gt;&lt;span style="font-size:85%;"&gt;% MOMENTS&lt;br /&gt;%&lt;br /&gt;% Fungsi menghitung momen sebuah citra biner dan mengembalikan&lt;br /&gt;% area, centroid, sudut dari sumbu inertia minimum, dan sebuah&lt;br /&gt;% ukuran ‘kebulatan'.  Fungsi ini mengasumsikan bahwa hanya ada&lt;br /&gt;% satu obyek pada citra biner.&lt;br /&gt;%&lt;br /&gt;% function [area, centroid, theta, roundness] = moments(im)&lt;br /&gt;%&lt;br /&gt;% Argument:  im   - citra biner berisi nilai 0 atau 1&lt;br /&gt;%&lt;br /&gt;% Returns:   area      - luasan citra biner&lt;br /&gt;%            centroid  - vektor dengan 2 elemen&lt;br /&gt;%            theta     - sudut sumbu kelembaman minimum (radian)&lt;br /&gt;%            roundness - ratio minimum inertia/maximum inertia.&lt;br /&gt;%&lt;br /&gt;% Fungsi ini juga menampilkan citra dan letak dari&lt;br /&gt;% centroid dan sumbu inertia minimum.  Area yang dihitung&lt;br /&gt;% harus ditampilkan sebagai title di citra.&lt;br /&gt;&lt;br /&gt;function [area, centroid, theta, roundness] = moments(im)&lt;br /&gt;%mendapatkan ukuran matrix image&lt;br /&gt;[rows,cols] = size(im);&lt;br /&gt;x = ones(rows,1)*[1:cols];    % Matrix pada setiap pixel set pada koordinat x&lt;br /&gt;y = [1:rows]'*ones(1,cols);   % Matrix pada setiap pixel set pada koordinat y&lt;br /&gt;&lt;br /&gt;area = sum(sum(im));&lt;br /&gt;meanx = sum(sum(double(im).*x))/area;&lt;br /&gt;meany = sum(sum(double(im).*y))/area;&lt;br /&gt;centroid = [meanx, meany];&lt;br /&gt;&lt;br /&gt;%  mengubah koordinat ke pusat masa&lt;br /&gt;x = x - meanx;&lt;br /&gt;y = y - meany;&lt;br /&gt;&lt;br /&gt;a = sum(sum(double(im).*x.^2));&lt;br /&gt;b = sum(sum(double(im).*x.*y))*2;&lt;br /&gt;c = sum(sum(double(im).*y.^2));&lt;br /&gt;&lt;br /&gt;denom = b^2 + (a-c)^2;&lt;br /&gt;&lt;br /&gt;if denom == 0&lt;br /&gt;   % tetha mengubah sudut&lt;br /&gt;   thetamin = 2*pi*rand;&lt;br /&gt;   thetamax = 2*pi*rand;&lt;br /&gt;   roundness = 1;&lt;br /&gt;else&lt;br /&gt;   sin2thetamin = b/sqrt(denom);       %solusi positif&lt;br /&gt;   sin2thetamax = -sin2thetamin;       %solusi negatif&lt;br /&gt;   cos2thetamin = (a-c)/sqrt(denom);   %solusi positif&lt;br /&gt;   cos2thetamax = -cos2thetamin;       %solusi negatif&lt;br /&gt;&lt;br /&gt;   thetamin = atan2(sin2thetamin, cos2thetamin)/2;&lt;br /&gt;   thetamax = atan2(sin2thetamax, cos2thetamax)/2;&lt;br /&gt;   Imin = 0.5*(c+a) - 0.5*(a-c)*cos2thetamin - 0.5*b*sin2thetamin;&lt;br /&gt;   Imax = 0.5*(c+a) - 0.5*(a-c)*cos2thetamax - 0.5*b*sin2thetamax;&lt;br /&gt;   roundness = Imin/Imax;&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;% menggambar sumbu sesuai dengan objek&lt;br /&gt;rho = sqrt(area)/(roundness + 0.5) + 5 ;&lt;br /&gt;[X1,Y1] = pol2cart(thetamin,      rho);&lt;br /&gt;[X2,Y2] = pol2cart(thetamin + pi, rho);&lt;br /&gt;&lt;br /&gt;imshow(im);&lt;br /&gt;hold;&lt;br /&gt;line([X1 + meanx, X2 + meanx],[Y1 + meany, Y2 + meany])&lt;br /&gt;plot(meanx, meany,'r+')&lt;br /&gt;hold;&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_2wMGiZdjuiw/SC3IoqGhJQI/AAAAAAAAAAk/_GEwNaME4kw/s1600-h/moment_ob2.png"&gt;&lt;br /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7509220249568087529-3709202031310921348?l=yudhaaditya.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yudhaaditya.blogspot.com/feeds/3709202031310921348/comments/default' title='Poskan Komentar'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7509220249568087529&amp;postID=3709202031310921348' title='0 Komentar'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7509220249568087529/posts/default/3709202031310921348'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7509220249568087529/posts/default/3709202031310921348'/><link rel='alternate' type='text/html' href='http://yudhaaditya.blogspot.com/2008/05/portofolio-1.html' title='Portofolio 1'/><author><name>Yudha Aditya</name><uri>http://www.blogger.com/profile/12303333565227862899</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_2wMGiZdjuiw/SC3IS6GhJOI/AAAAAAAAAAU/iJJKieJJTOg/s72-c/lego1.png' height='72' width='72'/><thr:total>0</thr:total></entry></feed>
