<?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-1337006332369536377</id><updated>2011-04-21T11:57:23.316-07:00</updated><title type='text'>..pics and physics</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://iasmark.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1337006332369536377/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://iasmark.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>iasmark</name><uri>http://www.blogger.com/profile/10465687830029106741</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>20</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1337006332369536377.post-1851381719732513731</id><published>2008-09-24T01:12:00.000-07:00</published><updated>2008-09-24T02:05:35.374-07:00</updated><title type='text'>..on neural networks</title><content type='html'>On the two previous activities, we applied pattern recognition to identify the class a given image belongs to. We have used the the minimum distance classification and the linear discriminant analysis. In this activity, we introduce another method: neural networks. Neural networks mimics the way how our brain neurons work. It classifies images by learning the rule of mapping using the training set. Below is a diagram of an artificial neural network. Xi would be the inputs and Z would be the output. The goal is to determine the values of the weights Wi such that the resulting output Z matches our desired output. To do this, we train the network using examples from the training set. After determining the values for the weights Wi, we can now classify the images from the test set.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BoRubwevXAo/SNn8E_u9utI/AAAAAAAAAjY/efqm91l0nVU/s1600-h/im1.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_BoRubwevXAo/SNn8E_u9utI/AAAAAAAAAjY/efqm91l0nVU/s320/im1.JPG" alt="" id="BLOGGER_PHOTO_ID_5249504003435117266" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;We use the same set of images form the previous activities. We consider 10 (5 training set, 5 test set) images of leaves of each kind of two different plant: Mango and an ornamental plant (I dont know the name).&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BoRubwevXAo/SM8a7i0_-RI/AAAAAAAAAgI/AnjZRTpllC0/s1600-h/leavtype1set1.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_BoRubwevXAo/SM8a7i0_-RI/AAAAAAAAAgI/AnjZRTpllC0/s320/leavtype1set1.JPG" alt="" id="BLOGGER_PHOTO_ID_5246441701173623058" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Mango Leaves&lt;br /&gt;&lt;br /&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://4.bp.blogspot.com/_BoRubwevXAo/SM8a719XY1I/AAAAAAAAAgQ/Oqf2LMyEZkc/s1600-h/leavtype2set1.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_BoRubwevXAo/SM8a719XY1I/AAAAAAAAAgQ/Oqf2LMyEZkc/s320/leavtype2set1.JPG" alt="" id="BLOGGER_PHOTO_ID_5246441706308985682" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Ornamental Plant Leaves&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;We also enhance the images as to make the classification process easier. We used the Gray World Algorithm in white balancing our images. For each class, we divided it into two groups: the training set and the test set. We use the training set to get the characteristic features of the leaves that would easily differentiate it from the other class. In this case, we used the RGB values and the eccentricity of the shape of the leaves as our four distinguishing features. Below is a table showing the four features corresponding to each of the 10 training set. These would be our input X in the neural network.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BoRubwevXAo/SNn7NVX2Z2I/AAAAAAAAAjQ/L2YFEsZlwXk/s1600-h/tab1.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_BoRubwevXAo/SNn7NVX2Z2I/AAAAAAAAAjQ/L2YFEsZlwXk/s320/tab1.JPG" alt="" id="BLOGGER_PHOTO_ID_5249503047171073890" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;From this training set, we determine the desired weights Wi of the network. We now classify the remaining images in the test set. The output would be 0 or 1 corresponding to the two classes (1 or 2). The table below is the summary of the results. &lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_BoRubwevXAo/SNoBujWzGVI/AAAAAAAAAjo/4NPSoPYkRIY/s1600-h/tab2.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 428px; height: 223px;" src="http://2.bp.blogspot.com/_BoRubwevXAo/SNoBujWzGVI/AAAAAAAAAjo/4NPSoPYkRIY/s320/tab2.JPG" alt="" id="BLOGGER_PHOTO_ID_5249510214930209106" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Like the two previous methods, neural networks have successfully classified all the 10 images. The success rate is 100%.&lt;br /&gt;&lt;br /&gt;I was able to successfully accomplish the activity. I want to give myself a 10.&lt;br /&gt;&lt;br /&gt;Acknowledgment to Jeric for the sample code and the discussion on neural networks.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1337006332369536377-1851381719732513731?l=iasmark.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iasmark.blogspot.com/feeds/1851381719732513731/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1337006332369536377&amp;postID=1851381719732513731' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1337006332369536377/posts/default/1851381719732513731'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1337006332369536377/posts/default/1851381719732513731'/><link rel='alternate' type='text/html' href='http://iasmark.blogspot.com/2008/09/on-neural-networks.html' title='..on neural networks'/><author><name>iasmark</name><uri>http://www.blogger.com/profile/10465687830029106741</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/_BoRubwevXAo/SNn8E_u9utI/AAAAAAAAAjY/efqm91l0nVU/s72-c/im1.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1337006332369536377.post-7440682414865684112</id><published>2008-09-18T01:11:00.000-07:00</published><updated>2008-09-24T02:00:44.147-07:00</updated><title type='text'>..on probabilistic qualification</title><content type='html'>Like the previous activity, our goal is to correctly classify an image to the class which it belongs. But this time, we use a different method: the linear discriminant analysis (LDA). We use the same set of images form the previous activity. We consider 10 (5 training set, 5 test set) images of leaves of each kind of three different plant: Mango, an ornamental plant (I dont know the name), and Indian tree.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BoRubwevXAo/SM8a7i0_-RI/AAAAAAAAAgI/AnjZRTpllC0/s1600-h/leavtype1set1.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_BoRubwevXAo/SM8a7i0_-RI/AAAAAAAAAgI/AnjZRTpllC0/s320/leavtype1set1.JPG" alt="" id="BLOGGER_PHOTO_ID_5246441701173623058" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Mango Leaves&lt;br /&gt;&lt;br /&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://4.bp.blogspot.com/_BoRubwevXAo/SM8a719XY1I/AAAAAAAAAgQ/Oqf2LMyEZkc/s1600-h/leavtype2set1.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_BoRubwevXAo/SM8a719XY1I/AAAAAAAAAgQ/Oqf2LMyEZkc/s320/leavtype2set1.JPG" alt="" id="BLOGGER_PHOTO_ID_5246441706308985682" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Ornamental Plant Leaves&lt;br /&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/_BoRubwevXAo/SM8a7wpV_ZI/AAAAAAAAAgY/NKk0BBwSV6A/s1600-h/leavtype3set1.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_BoRubwevXAo/SM8a7wpV_ZI/AAAAAAAAAgY/NKk0BBwSV6A/s320/leavtype3set1.JPG" alt="" id="BLOGGER_PHOTO_ID_5246441704882830738" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Indian Tree Leaves&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;We also enhance the images as to make the classification process easier. Discussed in the previous activity, we used the Gray World Algorithm in white balancing our images. For each class, we divided it into two groups: the training set and the test set. We use the training set to get the characteristic features of the leaves that would easily differentiate it from the other class. In this case, we used the RGB values and the eccentricity of the shape of the leaves as our four distinguishing features. Below is a table showing the four features corresponding to each of the 15 training set. This would be our matrix x.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BoRubwevXAo/SNIRcQY-ZoI/AAAAAAAAAiY/xjGnGwIwPVQ/s1600-h/t1.PNG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_BoRubwevXAo/SNIRcQY-ZoI/AAAAAAAAAiY/xjGnGwIwPVQ/s320/t1.PNG" alt="" id="BLOGGER_PHOTO_ID_5247275692973778562" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;We further group this matrix into their corresponding class: x1, x2, and x3.&lt;br /&gt;x1:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BoRubwevXAo/SNISXJrcHXI/AAAAAAAAAig/0gHBGoZh5No/s1600-h/x1.PNG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_BoRubwevXAo/SNISXJrcHXI/AAAAAAAAAig/0gHBGoZh5No/s320/x1.PNG" alt="" id="BLOGGER_PHOTO_ID_5247276704784457074" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;x2:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BoRubwevXAo/SNISmH2kX_I/AAAAAAAAAio/iNzTn2zgL6g/s1600-h/x2.PNG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_BoRubwevXAo/SNISmH2kX_I/AAAAAAAAAio/iNzTn2zgL6g/s320/x2.PNG" alt="" id="BLOGGER_PHOTO_ID_5247276961992302578" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;x3:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BoRubwevXAo/SNISmLKbrxI/AAAAAAAAAiw/fChIQ9_XBEs/s1600-h/x3.PNG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_BoRubwevXAo/SNISmLKbrxI/AAAAAAAAAiw/fChIQ9_XBEs/s320/x3.PNG" alt="" id="BLOGGER_PHOTO_ID_5247276962880925458" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;We take the mean (u1, u2, u3) for each of these three matrix as well as the mean (u) of the entire matrix x. We then create the mean corrected (x1', x2',x3') matrix given by: xi'=xi-u for i=1,2,3.&lt;br /&gt;&lt;br /&gt;We now compute for the covariance matrix given by: Ci=(xi'*xi)/ni for i=1,2,3 where ni is just the total number of trial images for class i. We further compute for the covariance matrix of the entire data given by:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BoRubwevXAo/SNIXNmfSr9I/AAAAAAAAAi4/x_hLaehPStU/s1600-h/eq1.PNG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_BoRubwevXAo/SNIXNmfSr9I/AAAAAAAAAi4/x_hLaehPStU/s320/eq1.PNG" alt="" id="BLOGGER_PHOTO_ID_5247282038277582802" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;where r and s corresponds for each row r and column s entry and n is just the total number of trial images. Finally, we compute for the linear discriminant function f for each class i. pi is ni/n.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BoRubwevXAo/SNIXvVJ2SaI/AAAAAAAAAjA/7KhyMHiW3oI/s1600-h/eq2.PNG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_BoRubwevXAo/SNIXvVJ2SaI/AAAAAAAAAjA/7KhyMHiW3oI/s320/eq2.PNG" alt="" id="BLOGGER_PHOTO_ID_5247282617739790754" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The highest fi corresponds to the class where the image belongs. We do this for the 15 remaining images in the test set. The table below is the summary of the results.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BoRubwevXAo/SNIZQBFO79I/AAAAAAAAAjI/RiGbfbc7Kho/s1600-h/t2.PNG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 359px; height: 235px;" src="http://3.bp.blogspot.com/_BoRubwevXAo/SNIZQBFO79I/AAAAAAAAAjI/RiGbfbc7Kho/s320/t2.PNG" alt="" id="BLOGGER_PHOTO_ID_5247284278799036370" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Like the previous method, we have successfully classify all the 15 images. The success rate is 100%.&lt;br /&gt;&lt;br /&gt;I was able to successfully accomplish the activity. I want to give myself a 10.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1337006332369536377-7440682414865684112?l=iasmark.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iasmark.blogspot.com/feeds/7440682414865684112/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1337006332369536377&amp;postID=7440682414865684112' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1337006332369536377/posts/default/7440682414865684112'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1337006332369536377/posts/default/7440682414865684112'/><link rel='alternate' type='text/html' href='http://iasmark.blogspot.com/2008/09/on-probabilistic-qualification.html' title='..on probabilistic qualification'/><author><name>iasmark</name><uri>http://www.blogger.com/profile/10465687830029106741</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://3.bp.blogspot.com/_BoRubwevXAo/SM8a7i0_-RI/AAAAAAAAAgI/AnjZRTpllC0/s72-c/leavtype1set1.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1337006332369536377.post-710197280442057516</id><published>2008-09-15T19:12:00.000-07:00</published><updated>2008-09-16T00:16:05.559-07:00</updated><title type='text'>..on pattern recognition</title><content type='html'>Given an image, our goal is to correctly determine which class it belongs. Specifically, we consider 10 images of leaves of each kind of three different plant: Mango, an ornamental plant (I dont know the name), and Indian tree.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BoRubwevXAo/SM8a7i0_-RI/AAAAAAAAAgI/AnjZRTpllC0/s1600-h/leavtype1set1.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_BoRubwevXAo/SM8a7i0_-RI/AAAAAAAAAgI/AnjZRTpllC0/s320/leavtype1set1.JPG" alt="" id="BLOGGER_PHOTO_ID_5246441701173623058" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Mango Leaves&lt;br /&gt;&lt;br /&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://4.bp.blogspot.com/_BoRubwevXAo/SM8a719XY1I/AAAAAAAAAgQ/Oqf2LMyEZkc/s1600-h/leavtype2set1.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_BoRubwevXAo/SM8a719XY1I/AAAAAAAAAgQ/Oqf2LMyEZkc/s320/leavtype2set1.JPG" alt="" id="BLOGGER_PHOTO_ID_5246441706308985682" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Ornamental Plant Leaves&lt;br /&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/_BoRubwevXAo/SM8a7wpV_ZI/AAAAAAAAAgY/NKk0BBwSV6A/s1600-h/leavtype3set1.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_BoRubwevXAo/SM8a7wpV_ZI/AAAAAAAAAgY/NKk0BBwSV6A/s320/leavtype3set1.JPG" alt="" id="BLOGGER_PHOTO_ID_5246441704882830738" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Indian Tree Leaves&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;We first enhance the images as to make the classification process easier. Discussed in the previous activity, we used the Gray World Algorithm in white balancing our images.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BoRubwevXAo/SM8bYsPDbVI/AAAAAAAAAgg/c2rna1EhrAg/s1600-h/Ltewb1.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_BoRubwevXAo/SM8bYsPDbVI/AAAAAAAAAgg/c2rna1EhrAg/s320/Ltewb1.jpg" alt="" id="BLOGGER_PHOTO_ID_5246442201915026770" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_BoRubwevXAo/SM8bY109R5I/AAAAAAAAAgo/d8jNU-Sz5Qs/s1600-h/Ltewb2.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_BoRubwevXAo/SM8bY109R5I/AAAAAAAAAgo/d8jNU-Sz5Qs/s320/Ltewb2.jpg" alt="" id="BLOGGER_PHOTO_ID_5246442204489926546" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&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://4.bp.blogspot.com/_BoRubwevXAo/SM8bY2UbNLI/AAAAAAAAAgw/U3sgkR80kk8/s1600-h/Ltewb6.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_BoRubwevXAo/SM8bY2UbNLI/AAAAAAAAAgw/U3sgkR80kk8/s320/Ltewb6.jpg" alt="" id="BLOGGER_PHOTO_ID_5246442204621911218" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BoRubwevXAo/SM8bZY-EbRI/AAAAAAAAAg4/frsgtOHETrk/s1600-h/Ltewb7.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_BoRubwevXAo/SM8bZY-EbRI/AAAAAAAAAg4/frsgtOHETrk/s320/Ltewb7.jpg" alt="" id="BLOGGER_PHOTO_ID_5246442213923384594" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&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/_BoRubwevXAo/SM8b0KrYLbI/AAAAAAAAAhA/8gtzSFhnot4/s1600-h/Ltewb11.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_BoRubwevXAo/SM8b0KrYLbI/AAAAAAAAAhA/8gtzSFhnot4/s320/Ltewb11.jpg" alt="" id="BLOGGER_PHOTO_ID_5246442673943358898" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BoRubwevXAo/SM8b0Fhu9MI/AAAAAAAAAhI/zC-Lr-g2AQk/s1600-h/Ltewb12.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_BoRubwevXAo/SM8b0Fhu9MI/AAAAAAAAAhI/zC-Lr-g2AQk/s320/Ltewb12.jpg" alt="" id="BLOGGER_PHOTO_ID_5246442672560731330" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;For each class, we divided it into two groups: the training set and the test set. We use the training set to get the  characteristic features of the leaves that  would easily differentiate it from the other class. In this case, we used the RGB values and the eccentricity of the shape of the leaves as our distinguishing features. This would be our feature vector x. We take the mean m of our feature vector for the entire training set. This is given by:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BoRubwevXAo/SM8d3sos1CI/AAAAAAAAAhQ/w8X6XsPsqtU/s1600-h/eq1.bmp"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_BoRubwevXAo/SM8d3sos1CI/AAAAAAAAAhQ/w8X6XsPsqtU/s320/eq1.bmp" alt="" id="BLOGGER_PHOTO_ID_5246444933621797922" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;where j is the class index and N is the number of samples in our training set for each class . Below is the table for the mean values for each class.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_BoRubwevXAo/SM9XZoiiC4I/AAAAAAAAAiI/jiSHnK8SSRM/s1600-h/table1.PNG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 353px; height: 71px;" src="http://2.bp.blogspot.com/_BoRubwevXAo/SM9XZoiiC4I/AAAAAAAAAiI/jiSHnK8SSRM/s320/table1.PNG" alt="" id="BLOGGER_PHOTO_ID_5246508188800519042" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;To classify which class images belongs to, we use the minimum distance classification. Taking the feature vector x of an unknown image, we determine which class mean m it is nearest to.  This is given by:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BoRubwevXAo/SM8ft9dWLAI/AAAAAAAAAhY/_5yBzAGCfSY/s1600-h/eq2.bmp"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_BoRubwevXAo/SM8ft9dWLAI/AAAAAAAAAhY/_5yBzAGCfSY/s320/eq2.bmp" alt="" id="BLOGGER_PHOTO_ID_5246446965362142210" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;where&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BoRubwevXAo/SM8ft5s0ETI/AAAAAAAAAhg/6tNp13BPIn4/s1600-h/eq3.bmp"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_BoRubwevXAo/SM8ft5s0ETI/AAAAAAAAAhg/6tNp13BPIn4/s320/eq3.bmp" alt="" id="BLOGGER_PHOTO_ID_5246446964353274162" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The smallest D corresponds to the class where the unknown image belongs. We do this for the 15 remaining images in the test set. The table below is the summary of the results.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BoRubwevXAo/SM9bPlUbJiI/AAAAAAAAAiQ/SOFCKP7BSsQ/s1600-h/table4.PNG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 367px; height: 237px;" src="http://3.bp.blogspot.com/_BoRubwevXAo/SM9bPlUbJiI/AAAAAAAAAiQ/SOFCKP7BSsQ/s320/table4.PNG" alt="" id="BLOGGER_PHOTO_ID_5246512414183859746" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;We have successfully classify all the 15 test images. The success rate is 100%.&lt;br /&gt;&lt;br /&gt;I was able to successfully accomplish the activity. I want to give myself a 10.&lt;br /&gt;&lt;br /&gt;Acknowledgment to Rica for uploading the images.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1337006332369536377-710197280442057516?l=iasmark.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iasmark.blogspot.com/feeds/710197280442057516/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1337006332369536377&amp;postID=710197280442057516' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1337006332369536377/posts/default/710197280442057516'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1337006332369536377/posts/default/710197280442057516'/><link rel='alternate' type='text/html' href='http://iasmark.blogspot.com/2008/09/on-pattern-recognition.html' title='..on pattern recognition'/><author><name>iasmark</name><uri>http://www.blogger.com/profile/10465687830029106741</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://3.bp.blogspot.com/_BoRubwevXAo/SM8a7i0_-RI/AAAAAAAAAgI/AnjZRTpllC0/s72-c/leavtype1set1.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1337006332369536377.post-3520544476471746365</id><published>2008-09-08T01:07:00.000-07:00</published><updated>2008-09-08T18:24:14.847-07:00</updated><title type='text'>..on basic video processing</title><content type='html'>Our goal is to determine to moment of inertia (MOI) of a physical pendulum using only a video of its motion. We apply image processing techniques to extract necessary information needed to solve  for the MOI. We used a flat metal ruler (mass=.0478kg, height=.635m, width=.03m) as the physical pendulum. Below is a sample video of its motion.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BoRubwevXAo/SMTp4sos3eI/AAAAAAAAAfA/bnAlE9gBUcs/s1600-h/m11n.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_BoRubwevXAo/SMTp4sos3eI/AAAAAAAAAfA/bnAlE9gBUcs/s320/m11n.gif" alt="" id="BLOGGER_PHOTO_ID_5243573026429918690" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The MOI of a physical pendulum is given by:&lt;br /&gt;&lt;br /&gt;                  I=mg(h/2)(T/2π)^2.&lt;br /&gt;(source: http://cnx.org/content/m15585/latest/)&lt;br /&gt;&lt;br /&gt;To solve for I, we have to determine the period of oscillation from the video. First, we convert the video into frames of images. In processing the images, we first apply the color image segmentation such that we pick out the moving physical pendulum away from the background. This technique has already been discussed from the previous activity. Below are the results.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BoRubwevXAo/SMTo06qxr6I/AAAAAAAAAe4/DBEi5PCstBw/s1600-h/m11seg.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_BoRubwevXAo/SMTo06qxr6I/AAAAAAAAAe4/DBEi5PCstBw/s320/m11seg.gif" alt="" id="BLOGGER_PHOTO_ID_5243571861965615010" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Notice that the quality of the images are poor and distorted. We enhance the quality of the images using another technique previously discussed: morphological operations. We first binarized the images then apply dilation and erosion to enhance the shape of the physical pendulum.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BoRubwevXAo/SMTltO449-I/AAAAAAAAAew/OimnTRCEMBQ/s1600-h/m11fix.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_BoRubwevXAo/SMTltO449-I/AAAAAAAAAew/OimnTRCEMBQ/s320/m11fix.gif" alt="" id="BLOGGER_PHOTO_ID_5243568431419684834" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Now that the images are enhanced, we determine the period T of the oscillation. Since the images are binarized, we could keep track of the motion of the pendulum by noting the x and y coordinates of the white pixels corresponding to the pendulum. We use the mean x and the mean y coordinate to approximate the motion of the center of mass. Below is the plot of the X axis coordinate as a function of time.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BoRubwevXAo/SMXP4d4nnqI/AAAAAAAAAfY/SgqVcjO2mMg/s1600-h/plot5.bmp"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_BoRubwevXAo/SMXP4d4nnqI/AAAAAAAAAfY/SgqVcjO2mMg/s320/plot5.bmp" alt="" id="BLOGGER_PHOTO_ID_5243825910144540322" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;As the oscillation reaches a maximum, there would be a change in the directions of the coordinates of the center of mass. This periodic change in direction is the sinusoidal function we see in the plot above. Noting this and counting the number of frames between consecutive changes, we determine the number of frames corresponding to half the period. Since the frame rate of the video is 14.5 fps,  the time  interval per frame is 1/14.5=.069s. Thus the half period of the oscillation is just the number of frames times .069s.&lt;br /&gt;&lt;br /&gt;From the processed images, the number of frames corresponding to half a period are: 10, 10, 9, 10, 9, 10, 9, 10, 10, 9. The mean value is: 9.6 frames corresponding to 0.6624s half period. Thus, the period of oscillation is 1.3248s. Using the equation above, we determine the MOI to be 6.612E-3.&lt;br /&gt;&lt;br /&gt;To check, we determine to moment of inertia using another equation given as:&lt;br /&gt;&lt;br /&gt;I=(m/2)(h)^2 + (m/12)(h)^2&lt;br /&gt;(source: http://en.wikipedia.org/wiki/List_of_moments_of_inertia)&lt;br /&gt;&lt;br /&gt;Noting the value of the mass=.0478kg, height=.635m, and width=.03m, the theoretical MOI is 6.428E-3. Comparing with the experimental MOI above, this corresponds to 2.86% error. The method is successful in determining the MOI of a physical pendulum using only a video of its motion.&lt;br /&gt;&lt;br /&gt;I've successfully accomplished the activity. I want to give myself a 10.&lt;br /&gt;&lt;br /&gt;Acknowledgment to my collaborators on the physical pendulum video gathering: Cole and Jeric.&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BoRubwevXAo/SMTf2ADeR3I/AAAAAAAAAeg/YeQpqqLwM8g/s1600-h/eq1.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/1337006332369536377-3520544476471746365?l=iasmark.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iasmark.blogspot.com/feeds/3520544476471746365/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1337006332369536377&amp;postID=3520544476471746365' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1337006332369536377/posts/default/3520544476471746365'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1337006332369536377/posts/default/3520544476471746365'/><link rel='alternate' type='text/html' href='http://iasmark.blogspot.com/2008/09/on-basic-video-processing.html' title='..on basic video processing'/><author><name>iasmark</name><uri>http://www.blogger.com/profile/10465687830029106741</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/_BoRubwevXAo/SMTp4sos3eI/AAAAAAAAAfA/bnAlE9gBUcs/s72-c/m11n.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1337006332369536377.post-3700624331336160170</id><published>2008-09-01T23:33:00.000-07:00</published><updated>2008-09-02T00:55:20.134-07:00</updated><title type='text'>..on color image segmentation</title><content type='html'>From a given image, our goal is to pick out the region of interest (ROI). To do this, we first have to get rid of the effect of brightness on the image (shadowing), and just consider the chromaticity. We represent the color space not by the RGB but by normalized chromaticity coordinates (NCC). Per pixel, we solve for the corresponding r,g,b values given by:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BoRubwevXAo/SLzhdo6znZI/AAAAAAAAAc4/VzsmAYSaRrI/s1600-h/ilus1.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_BoRubwevXAo/SLzhdo6znZI/AAAAAAAAAc4/VzsmAYSaRrI/s320/ilus1.JPG" alt="" id="BLOGGER_PHOTO_ID_5241311965668941202" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Since r+g+b=1, the chromaticity can be represented using only 2 values (r &amp;amp; g). Below is the normalized chromaticity space (x-axis is r and y-axis is g).&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_BoRubwevXAo/SLzj9-N47wI/AAAAAAAAAdA/BrrcENwVCG0/s1600-h/ilus2.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_BoRubwevXAo/SLzj9-N47wI/AAAAAAAAAdA/BrrcENwVCG0/s320/ilus2.JPG" alt="" id="BLOGGER_PHOTO_ID_5241314720165195522" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;We now proceed with picking out the ROI. There are two methods: the Parametric and the Non Parametric.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Parametric&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;In this method, we first crop a subregion in the ROI. From this patch, we take the mean and standard deviation of r and g. We then compute for the distribution probability (we assume a Gaussian) using: &lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BoRubwevXAo/SLzqujm4lyI/AAAAAAAAAdI/TX_dsUT3lhk/s1600-h/ilus3.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_BoRubwevXAo/SLzqujm4lyI/AAAAAAAAAdI/TX_dsUT3lhk/s320/ilus3.JPG" alt="" id="BLOGGER_PHOTO_ID_5241322151905629986" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;We do the same for p(g). The joint probability is just the product p(r)p(g). Below are sample the results:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BoRubwevXAo/SLzrVhtAkDI/AAAAAAAAAdQ/XPag71TTA14/s1600-h/rubiks.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_BoRubwevXAo/SLzrVhtAkDI/AAAAAAAAAdQ/XPag71TTA14/s320/rubiks.jpg" alt="" id="BLOGGER_PHOTO_ID_5241322821409345586" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Original Image&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&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://1.bp.blogspot.com/_BoRubwevXAo/SLztO5ILF7I/AAAAAAAAAdo/ZKv9NTaDGsQ/s1600-h/rubPb-.GIF"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_BoRubwevXAo/SLztO5ILF7I/AAAAAAAAAdo/ZKv9NTaDGsQ/s320/rubPb-.GIF" alt="" id="BLOGGER_PHOTO_ID_5241324906461468594" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Parametric&lt;br /&gt;ROI: Blue Tiles&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&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/_BoRubwevXAo/SLzt8Pd34MI/AAAAAAAAAdw/cSxxXCRKMy4/s1600-h/rubPy-.GIF"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_BoRubwevXAo/SLzt8Pd34MI/AAAAAAAAAdw/cSxxXCRKMy4/s320/rubPy-.GIF" alt="" id="BLOGGER_PHOTO_ID_5241325685552177346" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Parametric&lt;br /&gt;ROI: Yellow Tiles&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Non Parametric (Histogram Backprojection)&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;In this method, we take the 2D r-g histogram of the crop subregion of the ROI. We then backproject the value to the pixel location of the original image. Below are sample the results:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BoRubwevXAo/SLzrVhtAkDI/AAAAAAAAAdQ/XPag71TTA14/s1600-h/rubiks.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_BoRubwevXAo/SLzrVhtAkDI/AAAAAAAAAdQ/XPag71TTA14/s320/rubiks.jpg" alt="" id="BLOGGER_PHOTO_ID_5241322821409345586" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Original Image&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&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://4.bp.blogspot.com/_BoRubwevXAo/SLzv3c1IjtI/AAAAAAAAAeI/WstJy2pLVEo/s1600-h/rubNPb-.GIF"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_BoRubwevXAo/SLzv3c1IjtI/AAAAAAAAAeI/WstJy2pLVEo/s320/rubNPb-.GIF" alt="" id="BLOGGER_PHOTO_ID_5241327802263310034" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Parametric&lt;br /&gt;ROI: Blue Tiles&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&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://3.bp.blogspot.com/_BoRubwevXAo/SLzwHm36-vI/AAAAAAAAAeQ/jjtsL7VvdHA/s1600-h/rubNPy-.GIF"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_BoRubwevXAo/SLzwHm36-vI/AAAAAAAAAeQ/jjtsL7VvdHA/s320/rubNPy-.GIF" alt="" id="BLOGGER_PHOTO_ID_5241328079837264626" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Parametric&lt;br /&gt;ROI: Yellow Tiles&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Comparing between the two method, we could observe that the Parametric method has a better result.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_BoRubwevXAo/SLzuYyL4J5I/AAAAAAAAAeA/pkKO0t32ffY/s1600-h/gloves2.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_BoRubwevXAo/SLzuYyL4J5I/AAAAAAAAAeA/pkKO0t32ffY/s320/gloves2.JPG" alt="" id="BLOGGER_PHOTO_ID_5241326175908276114" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Original Image&lt;br /&gt;&lt;br /&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://4.bp.blogspot.com/_BoRubwevXAo/SLzuYmHjE4I/AAAAAAAAAd4/51WIy0eoQ2k/s1600-h/resP4-.GIF"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_BoRubwevXAo/SLzuYmHjE4I/AAAAAAAAAd4/51WIy0eoQ2k/s320/resP4-.GIF" alt="" id="BLOGGER_PHOTO_ID_5241326172668892034" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Parametric&lt;br /&gt;&lt;br /&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://3.bp.blogspot.com/_BoRubwevXAo/SLzwj7MpwvI/AAAAAAAAAeY/b4tvDwqbsXw/s1600-h/resNP4-.GIF"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_BoRubwevXAo/SLzwj7MpwvI/AAAAAAAAAeY/b4tvDwqbsXw/s320/resNP4-.GIF" alt="" id="BLOGGER_PHOTO_ID_5241328566329262834" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Non Parametric&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I've successfully accomplished the activity. I want to give myself a 10.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1337006332369536377-3700624331336160170?l=iasmark.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iasmark.blogspot.com/feeds/3700624331336160170/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1337006332369536377&amp;postID=3700624331336160170' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1337006332369536377/posts/default/3700624331336160170'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1337006332369536377/posts/default/3700624331336160170'/><link rel='alternate' type='text/html' href='http://iasmark.blogspot.com/2008/09/on-color-image-segmentation.html' title='..on color image segmentation'/><author><name>iasmark</name><uri>http://www.blogger.com/profile/10465687830029106741</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/_BoRubwevXAo/SLzhdo6znZI/AAAAAAAAAc4/VzsmAYSaRrI/s72-c/ilus1.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1337006332369536377.post-6750868734149688735</id><published>2008-08-27T20:06:00.000-07:00</published><updated>2008-08-28T00:24:21.407-07:00</updated><title type='text'>..on color image processing</title><content type='html'>Below are images taken at different white balancing.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BoRubwevXAo/SLYWvn7eiAI/AAAAAAAAAa4/iYlvQMZyZZE/s1600-h/68.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_BoRubwevXAo/SLYWvn7eiAI/AAAAAAAAAa4/iYlvQMZyZZE/s320/68.JPG" alt="" id="BLOGGER_PHOTO_ID_5239400223920261122" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Daylight setting under flourescent light&lt;br /&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://4.bp.blogspot.com/_BoRubwevXAo/SLYXiR56iMI/AAAAAAAAAbA/lE4gQwjWTyQ/s1600-h/69.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_BoRubwevXAo/SLYXiR56iMI/AAAAAAAAAbA/lE4gQwjWTyQ/s320/69.JPG" alt="" id="BLOGGER_PHOTO_ID_5239401094181456066" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Cloudy setting under flourescent light&lt;br /&gt;&lt;br /&gt;&lt;br /&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/_BoRubwevXAo/SLYXiZBQE7I/AAAAAAAAAbI/ulFujFKw33o/s1600-h/76.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_BoRubwevXAo/SLYXiZBQE7I/AAAAAAAAAbI/ulFujFKw33o/s320/76.JPG" alt="" id="BLOGGER_PHOTO_ID_5239401096091276210" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Flourescent setting under daylight&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;We notice that the images are wrongly balanced. The background which is supposed to be white appears otherwise. The white background for the daylight setting under flourescent light appears greenish. For the second image, the background appears grayish while for the last image, the background appears bluish. In order to correct these, we apply two popular algorithms for achieving automatic white balance: the reference white algorithm and the gray world algorithm.&lt;br /&gt;&lt;br /&gt;Reference White Algorithm (RWA)&lt;br /&gt;This method utilizes  a  known white image and used its RGB values as the divider. For our images, we used the background as the reference white. Below are the results of the enhancement. Notice that we have improved the color of the background as well as the colorful patches.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BoRubwevXAo/SLYa9Hq8OjI/AAAAAAAAAbQ/NWbWVtXq7-c/s1600-h/n68-.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_BoRubwevXAo/SLYa9Hq8OjI/AAAAAAAAAbQ/NWbWVtXq7-c/s320/n68-.JPG" alt="" id="BLOGGER_PHOTO_ID_5239404853825649202" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;RWA (Daylight setting under flourescent light)&lt;br /&gt;&lt;br /&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://1.bp.blogspot.com/_BoRubwevXAo/SLYa9QHrHgI/AAAAAAAAAbY/HJgCeL2yYM0/s1600-h/n69-.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_BoRubwevXAo/SLYa9QHrHgI/AAAAAAAAAbY/HJgCeL2yYM0/s320/n69-.JPG" alt="" id="BLOGGER_PHOTO_ID_5239404856093646338" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;RWA (Cloudy setting under flourescent light)&lt;br /&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://1.bp.blogspot.com/_BoRubwevXAo/SLYa9aa39EI/AAAAAAAAAbg/GqK-_MdtNAk/s1600-h/n76-.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_BoRubwevXAo/SLYa9aa39EI/AAAAAAAAAbg/GqK-_MdtNAk/s320/n76-.JPG" alt="" id="BLOGGER_PHOTO_ID_5239404858858533954" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;RWA&lt;br /&gt;(Flourescent setting under daylight)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Gray World Algorithm (GWA)&lt;br /&gt;This method assumes that the world is essentially gray. Thus, we just take the average of the red, green, and blue value of the captured image and use them as the divider. Below are the resulting enhanced images. Again, the colors of the resulting images are greatly enhanced.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BoRubwevXAo/SLZOHbHajSI/AAAAAAAAAcg/DnWT3zbWl0c/s1600-h/n268-.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_BoRubwevXAo/SLZOHbHajSI/AAAAAAAAAcg/DnWT3zbWl0c/s320/n268-.JPG" alt="" id="BLOGGER_PHOTO_ID_5239461105937059106" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;GWA (Daylight setting under flourescent light)&lt;br /&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://3.bp.blogspot.com/_BoRubwevXAo/SLZOHUGJGzI/AAAAAAAAAco/6Ruz2f46KKk/s1600-h/n269-.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_BoRubwevXAo/SLZOHUGJGzI/AAAAAAAAAco/6Ruz2f46KKk/s320/n269-.JPG" alt="" id="BLOGGER_PHOTO_ID_5239461104052673330" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;GWA (Cloudy setting under flourescent light)&lt;br /&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/_BoRubwevXAo/SLZOss8HRbI/AAAAAAAAAcw/3ZI3xCbHphs/s1600-h/n276-.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_BoRubwevXAo/SLZOss8HRbI/AAAAAAAAAcw/3ZI3xCbHphs/s320/n276-.JPG" alt="" id="BLOGGER_PHOTO_ID_5239461746376656306" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;GWA&lt;br /&gt;(Flourescent setting under daylight)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Finally, we take an image of an ensemble of leaves having the same hue (green). This image is taken in flourescent setting under daylight. Notice that the white background appears bluish. Also, the color of the dark leaves appears black.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BoRubwevXAo/SLZJbrPcpJI/AAAAAAAAAcA/Od_trvpqBCg/s1600-h/79.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_BoRubwevXAo/SLZJbrPcpJI/AAAAAAAAAcA/Od_trvpqBCg/s320/79.JPG" alt="" id="BLOGGER_PHOTO_ID_5239455956304962706" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Flourescent setting under daylight&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;We improve this image using the reference white algorithm and gray world algorithm. Below are the resulting images. Both methods were able to enhance the image. The background now appears white and the color of the leaves are enhanced. Between the two methods, the resulting image from the gray world algorithm is better. The background appears really white and the color of the leaves are really distinct and clear.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BoRubwevXAo/SLZLSIBopuI/AAAAAAAAAcI/4SMyI8-gkOU/s1600-h/n79-.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_BoRubwevXAo/SLZLSIBopuI/AAAAAAAAAcI/4SMyI8-gkOU/s320/n79-.JPG" alt="" id="BLOGGER_PHOTO_ID_5239457991256221410" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;RWA&lt;br /&gt;&lt;br /&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://1.bp.blogspot.com/_BoRubwevXAo/SLZNdK5AZNI/AAAAAAAAAcY/qnDRFDdvpvU/s1600-h/n279-.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_BoRubwevXAo/SLZNdK5AZNI/AAAAAAAAAcY/qnDRFDdvpvU/s320/n279-.JPG" alt="" id="BLOGGER_PHOTO_ID_5239460380027151570" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;GWA&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I was able to successfully perform the activity. I want to give myself a 10.&lt;br /&gt;&lt;br /&gt;Acknowledgment to Jeric for the rubik's cube and Rica for uploading the images.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1337006332369536377-6750868734149688735?l=iasmark.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iasmark.blogspot.com/feeds/6750868734149688735/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1337006332369536377&amp;postID=6750868734149688735' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1337006332369536377/posts/default/6750868734149688735'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1337006332369536377/posts/default/6750868734149688735'/><link rel='alternate' type='text/html' href='http://iasmark.blogspot.com/2008/08/on-color-image-processing.html' title='..on color image processing'/><author><name>iasmark</name><uri>http://www.blogger.com/profile/10465687830029106741</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/_BoRubwevXAo/SLYWvn7eiAI/AAAAAAAAAa4/iYlvQMZyZZE/s72-c/68.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1337006332369536377.post-98796733380897481</id><published>2008-08-25T19:53:00.000-07:00</published><updated>2008-08-25T20:33:11.963-07:00</updated><title type='text'>..on stereometry</title><content type='html'>We try to reconstruct the image of a 3D object using images taken at different positions. Using a technique called stereometry, we will derive the depth z of the 3D object using 2D images (x,y). Consider the diagram below.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BoRubwevXAo/SLNwwyJPu6I/AAAAAAAAAaA/hsQzE-Un_n4/s1600-h/illus1.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_BoRubwevXAo/SLNwwyJPu6I/AAAAAAAAAaA/hsQzE-Un_n4/s320/illus1.JPG" alt="" id="BLOGGER_PHOTO_ID_5238654774958603170" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Given that the 2 images have the same y coordinates, we could solve for z using:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BoRubwevXAo/SLNyKPTmWuI/AAAAAAAAAaI/6S3xQxnoxtg/s1600-h/illus2.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_BoRubwevXAo/SLNyKPTmWuI/AAAAAAAAAaI/6S3xQxnoxtg/s320/illus2.JPG" alt="" id="BLOGGER_PHOTO_ID_5238656311795014370" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;where b is just the traverse distance between the 2 images and f is just the focal length of the camera. We could solve for f using the calibration technique discussed on the previous activity.&lt;br /&gt;&lt;br /&gt;Below are the two different images of a rubik's cube taken with b=5cm.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BoRubwevXAo/SLN437WqZsI/AAAAAAAAAaw/7fpvygpMPkA/s1600-h/65.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_BoRubwevXAo/SLN437WqZsI/AAAAAAAAAaw/7fpvygpMPkA/s320/65.JPG" alt="" id="BLOGGER_PHOTO_ID_5238663693782902466" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&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://3.bp.blogspot.com/_BoRubwevXAo/SLN0nOLhUKI/AAAAAAAAAaY/uXEM-VrZJks/s1600-h/66.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_BoRubwevXAo/SLN0nOLhUKI/AAAAAAAAAaY/uXEM-VrZJks/s320/66.JPG" alt="" id="BLOGGER_PHOTO_ID_5238659008732156066" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Using 25 different points (x,y), we calculated for the corresponding depth (z). Below are the 3D reconstruction using splin2d of scilab for not a knot, bilinear interpolation, natural, and monotone.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_BoRubwevXAo/SLN05zUt2JI/AAAAAAAAAag/BeNeAZEFcZo/s1600-h/plot2.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_BoRubwevXAo/SLN05zUt2JI/AAAAAAAAAag/BeNeAZEFcZo/s320/plot2.JPG" alt="" id="BLOGGER_PHOTO_ID_5238659327940483218" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Enlarging further, we see that the reconstructed 3D object depicts a cube. Though the resulting rendition is not a perfect cube, we were able to show the general shape of the 3D object.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BoRubwevXAo/SLN1Bawt0pI/AAAAAAAAAao/3vzbbKW4m0g/s1600-h/plot3.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_BoRubwevXAo/SLN1Bawt0pI/AAAAAAAAAao/3vzbbKW4m0g/s320/plot3.JPG" alt="" id="BLOGGER_PHOTO_ID_5238659458785989266" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I want to give myself a 10.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1337006332369536377-98796733380897481?l=iasmark.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iasmark.blogspot.com/feeds/98796733380897481/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1337006332369536377&amp;postID=98796733380897481' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1337006332369536377/posts/default/98796733380897481'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1337006332369536377/posts/default/98796733380897481'/><link rel='alternate' type='text/html' href='http://iasmark.blogspot.com/2008/08/on-stereometry.html' title='..on stereometry'/><author><name>iasmark</name><uri>http://www.blogger.com/profile/10465687830029106741</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/_BoRubwevXAo/SLNwwyJPu6I/AAAAAAAAAaA/hsQzE-Un_n4/s72-c/illus1.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1337006332369536377.post-5838395704113607976</id><published>2008-08-07T05:47:00.000-07:00</published><updated>2008-08-07T06:18:31.307-07:00</updated><title type='text'>..on photometric stereo</title><content type='html'>We use photometric stereo to extract the 3D shape of an object using only the information from the shadow. We estimate the shape of the object using the shading obtained from different images of different light source location.&lt;br /&gt;&lt;br /&gt;Consider a point source of light at infinity.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BoRubwevXAo/SJrxE55I2VI/AAAAAAAAAZA/d47OQFHIQpI/s1600-h/ilus1.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_BoRubwevXAo/SJrxE55I2VI/AAAAAAAAAZA/d47OQFHIQpI/s320/ilus1.JPG" alt="" id="BLOGGER_PHOTO_ID_5231758983706499410" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The intensity I of the image is related to the vector position of the camera given by:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_BoRubwevXAo/SJryY1lyT8I/AAAAAAAAAZI/xGR9Vrg5FGI/s1600-h/ilus2.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_BoRubwevXAo/SJryY1lyT8I/AAAAAAAAAZI/xGR9Vrg5FGI/s320/ilus2.JPG" alt="" id="BLOGGER_PHOTO_ID_5231760425660600258" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;where N is the number of images used. We now solve for g using:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BoRubwevXAo/SJrzAdKiSpI/AAAAAAAAAZQ/oPr9wNAKyD0/s1600-h/ilus3.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_BoRubwevXAo/SJrzAdKiSpI/AAAAAAAAAZQ/oPr9wNAKyD0/s320/ilus3.JPG" alt="" id="BLOGGER_PHOTO_ID_5231761106298620562" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;to get the normal vector n, we simply normalize it:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_BoRubwevXAo/SJrzAdW8PsI/AAAAAAAAAZY/NqtZprt4Ycs/s1600-h/ilus4.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_BoRubwevXAo/SJrzAdW8PsI/AAAAAAAAAZY/NqtZprt4Ycs/s320/ilus4.JPG" alt="" id="BLOGGER_PHOTO_ID_5231761106350653122" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;to derive the shape from the normals, we note that the surface elevation f(x,y) is related to the normals by:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BoRubwevXAo/SJrzmjBchCI/AAAAAAAAAZg/L2JSctZZOSs/s1600-h/ilus5.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_BoRubwevXAo/SJrzmjBchCI/AAAAAAAAAZg/L2JSctZZOSs/s320/ilus5.JPG" alt="" id="BLOGGER_PHOTO_ID_5231761760706135074" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Finally, we solve for the surface elevation using:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BoRubwevXAo/SJrzmmk9WiI/AAAAAAAAAZo/FyqswOrcjwc/s1600-h/ilus6.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_BoRubwevXAo/SJrzmmk9WiI/AAAAAAAAAZo/FyqswOrcjwc/s320/ilus6.JPG" alt="" id="BLOGGER_PHOTO_ID_5231761761660394018" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;We apply this technique using four images of a sphere. The resulting 3D rendition is:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BoRubwevXAo/SJr1VcdRJ7I/AAAAAAAAAZ4/nkmEmf87l2I/s1600-h/output.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_BoRubwevXAo/SJr1VcdRJ7I/AAAAAAAAAZ4/nkmEmf87l2I/s320/output.gif" alt="" id="BLOGGER_PHOTO_ID_5231763665909262258" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Indeed, the resulting shape is a sphere.&lt;br /&gt;&lt;br /&gt;I've successfully accomplished the activity. I want to give myself a 10.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1337006332369536377-5838395704113607976?l=iasmark.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iasmark.blogspot.com/feeds/5838395704113607976/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1337006332369536377&amp;postID=5838395704113607976' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1337006332369536377/posts/default/5838395704113607976'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1337006332369536377/posts/default/5838395704113607976'/><link rel='alternate' type='text/html' href='http://iasmark.blogspot.com/2008/08/on-photometric-stereo.html' title='..on photometric stereo'/><author><name>iasmark</name><uri>http://www.blogger.com/profile/10465687830029106741</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/_BoRubwevXAo/SJrxE55I2VI/AAAAAAAAAZA/d47OQFHIQpI/s72-c/ilus1.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1337006332369536377.post-8994482680623453027</id><published>2008-08-06T19:47:00.000-07:00</published><updated>2008-08-07T06:24:58.667-07:00</updated><title type='text'>..on correcting geometric distortions</title><content type='html'>Below is an image of a  "grid"  capiz window. Notice that the image has a  barrel distortion effect. The  square grids located at the edges are much smaller than those found at the center. The center appears to be bloated while the sides are pinched. These are due to the "imperfect" lens of the camera that captured the image.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BoRubwevXAo/SJpj-G0T-XI/AAAAAAAAAXw/XWJuqgiW3So/s1600-h/distorted.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_BoRubwevXAo/SJpj-G0T-XI/AAAAAAAAAXw/XWJuqgiW3So/s320/distorted.jpg" alt="" id="BLOGGER_PHOTO_ID_5231603835777317234" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Our goal is to correct this distortion. We use the center square grid as our reference since it is less distorted. We then determine the transformation matrix that caused the barrel effect. Let f(x,y) be the coordinates of the ideal image while g(x',y') are the coordinates of the the distorted image. To determine the transformation matrix C, we map the coordinates of the ideal image in the distorted image.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BoRubwevXAo/SJpnAe0qIII/AAAAAAAAAX4/BO-YbgcEFUo/s1600-h/ilus1.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_BoRubwevXAo/SJpnAe0qIII/AAAAAAAAAX4/BO-YbgcEFUo/s320/ilus1.JPG" alt="" id="BLOGGER_PHOTO_ID_5231607175115841666" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;We then compute for the transformation matrix C using:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BoRubwevXAo/SJpnuxWFXJI/AAAAAAAAAYA/_Kav-taRh2o/s1600-h/ilus2.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_BoRubwevXAo/SJpnuxWFXJI/AAAAAAAAAYA/_Kav-taRh2o/s320/ilus2.JPG" alt="" id="BLOGGER_PHOTO_ID_5231607970361859218" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Now that we have determined the transformation matrix, we just simply copy the graylevel v(x',y') of the pixel located in g(x',y') into f(x,y). But since the calculated g(x',y') coordinates are real (pixel coordinates should be integral), we use bilinear interpolation. The graylevel of an arbitrary point is determined by the graylevel of the 4 nearest pixels encompassing that point.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_BoRubwevXAo/SJppWAXNovI/AAAAAAAAAYI/0Cb6YrdPH-8/s1600-h/ilus3.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_BoRubwevXAo/SJppWAXNovI/AAAAAAAAAYI/0Cb6YrdPH-8/s320/ilus3.JPG" alt="" id="BLOGGER_PHOTO_ID_5231609743919653618" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;We can no solve for the graylevel using:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BoRubwevXAo/SJpp5_0n9AI/AAAAAAAAAYQ/PUW_WUuZAGA/s1600-h/ilus4.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_BoRubwevXAo/SJpp5_0n9AI/AAAAAAAAAYQ/PUW_WUuZAGA/s320/ilus4.JPG" alt="" id="BLOGGER_PHOTO_ID_5231610362249868290" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;For the remaining blank pixels in the ideal image, again we use interpolation of the four nearest corners to determine its graylevel. Below is a comparison of the original distorted image and the enhanced(ideal) image. Notice that at the lower left level, the size of the square grid for the enhanced image increased. The grid lines also become more parallel. The resulting image has lessen the effect of the distortion. The image is no more bloated.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_BoRubwevXAo/SJrt52--3zI/AAAAAAAAAYw/m3iY43nOnPo/s1600-h/orig3.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_BoRubwevXAo/SJrt52--3zI/AAAAAAAAAYw/m3iY43nOnPo/s320/orig3.JPG" alt="" id="BLOGGER_PHOTO_ID_5231755495412260658" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Original distorted image&lt;br /&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/_BoRubwevXAo/SJrt595WcMI/AAAAAAAAAY4/4EaMWAiDR-o/s1600-h/r3image2.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_BoRubwevXAo/SJrt595WcMI/AAAAAAAAAY4/4EaMWAiDR-o/s320/r3image2.JPG" alt="" id="BLOGGER_PHOTO_ID_5231755497267687618" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Enhanced ideal image&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I think I've performed the activity successfully. The distorted image was enhanced. I want to give myself a 10.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1337006332369536377-8994482680623453027?l=iasmark.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iasmark.blogspot.com/feeds/8994482680623453027/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1337006332369536377&amp;postID=8994482680623453027' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1337006332369536377/posts/default/8994482680623453027'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1337006332369536377/posts/default/8994482680623453027'/><link rel='alternate' type='text/html' href='http://iasmark.blogspot.com/2008/08/on-correcting-geometric-distortions.html' title='..on correcting geometric distortions'/><author><name>iasmark</name><uri>http://www.blogger.com/profile/10465687830029106741</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/_BoRubwevXAo/SJpj-G0T-XI/AAAAAAAAAXw/XWJuqgiW3So/s72-c/distorted.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1337006332369536377.post-576974119587220159</id><published>2008-07-29T23:12:00.000-07:00</published><updated>2008-12-12T23:41:52.509-08:00</updated><title type='text'>..on camera calibration</title><content type='html'>A simple image is not an exact projection of the actual object. Some informations are lost. The task is to recover these lost details. And one of the important step is camera calibration. The goal is to know the transformation from the 3D world coordinates to the 2D image coordinates.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BoRubwevXAo/SJAMdQkgqDI/AAAAAAAAAXQ/zGaDEIxHK_0/s1600-h/fig1.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_BoRubwevXAo/SJAMdQkgqDI/AAAAAAAAAXQ/zGaDEIxHK_0/s320/fig1.JPG" alt="" id="BLOGGER_PHOTO_ID_5228692864180987954" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Below is an image of a 3D calibration checkboard. We designated an origin and using a right-hand coordinate system, we chose 25 square corners and measured their coordinates (Yi, Zi) with respect to the origin. We also determined their real world coordinates (Xo, Yo, Zo).&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BoRubwevXAo/SJAODnMM1xI/AAAAAAAAAXY/KGGCTvgJP9A/s1600-h/calibimage.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_BoRubwevXAo/SJAODnMM1xI/AAAAAAAAAXY/KGGCTvgJP9A/s320/calibimage.JPG" alt="" id="BLOGGER_PHOTO_ID_5228694622599698194" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;We now proceed with determining the transformation matrix a. The equation is given by&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BoRubwevXAo/SJAO8TCNbDI/AAAAAAAAAXg/oOTocrfRPPI/s1600-h/fig2.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 420px; height: 206px;" src="http://1.bp.blogspot.com/_BoRubwevXAo/SJAO8TCNbDI/AAAAAAAAAXg/oOTocrfRPPI/s320/fig2.JPG" alt="" id="BLOGGER_PHOTO_ID_5228695596441627698" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Finally, we solve for a using&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BoRubwevXAo/SJAPCeNlJjI/AAAAAAAAAXo/vswUUpub-lc/s1600-h/fig3.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_BoRubwevXAo/SJAPCeNlJjI/AAAAAAAAAXo/vswUUpub-lc/s320/fig3.JPG" alt="" id="BLOGGER_PHOTO_ID_5228695702521325106" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;To check for the accuracy, we randomly chose 4 points on the checkboard and using their real world coordinates, we calculated for their image coordinates. We measured the deviation from the theoretical value using the eucleadian distance. The results are: 1.12, 1.31, 1.44, and 0.98. These values shows that the calculated coordinates are less than 2 pixels away from the actual location. the accuracy is amazing.&lt;table str="" style="border-collapse: collapse; width: 48pt;" border="0" cellpadding="0" cellspacing="0" width="64"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="height: 12.75pt; width: 48pt;" num="0.97667346979425496" align="right" height="17" width="64"&gt;&lt;br /&gt;&lt;/td&gt; &lt;/tr&gt;&lt;/tbody&gt;&lt;tbody&gt;&lt;tr style="height: 12.75pt;" height="17"&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;I was able to finish the activity with high accuracy. I want to give myself a 10. &lt;table str="" style="border-collapse: collapse; width: 48pt;" border="0" cellpadding="0" cellspacing="0" width="64"&gt;&lt;col style="width: 48pt;" width="64"&gt;  &lt;tbody&gt;&lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td style="height: 12.75pt; width: 48pt;" num="1.4423086661668598" align="right" height="17" width="64"&gt;&lt;br /&gt;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr style="height: 12.75pt;" height="17"&gt;   &lt;td style="height: 12.75pt;" num="0.97667346979425496" align="right" height="17"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;table str="" style="border-collapse: collapse; width: 48pt;" border="0" cellpadding="0" cellspacing="0" width="64"&gt;&lt;tbody&gt;&lt;tr style="height: 12.75pt;" height="17"&gt;&lt;td style="height: 12.75pt; width: 48pt;" num="1.1236969841553746" align="right" height="17" width="64"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 12.75pt;" height="17"&gt;&lt;td style="height: 12.75pt;" num="1.3108938324670045" align="right" height="17"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 12.75pt;" height="17"&gt;&lt;td style="height: 12.75pt;" num="1.4423086661668598" align="right" height="17"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 12.75pt;" height="17"&gt;&lt;td style="height: 12.75pt;" num="0.97667346979425496" align="right" height="17"&gt;&lt;br /&gt;&lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1337006332369536377-576974119587220159?l=iasmark.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iasmark.blogspot.com/feeds/576974119587220159/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1337006332369536377&amp;postID=576974119587220159' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1337006332369536377/posts/default/576974119587220159'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1337006332369536377/posts/default/576974119587220159'/><link rel='alternate' type='text/html' href='http://iasmark.blogspot.com/2008/07/on-camera-calibration.html' title='..on camera calibration'/><author><name>iasmark</name><uri>http://www.blogger.com/profile/10465687830029106741</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/_BoRubwevXAo/SJAMdQkgqDI/AAAAAAAAAXQ/zGaDEIxHK_0/s72-c/fig1.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1337006332369536377.post-6369115896576659764</id><published>2008-07-22T00:08:00.000-07:00</published><updated>2008-12-12T23:41:53.865-08:00</updated><title type='text'>..on preprocessing handwritten text</title><content type='html'>Below is a digitalized image of a document. Our goal is to extract the handwritten text and to remove the horizontal lines.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BoRubwevXAo/SIWHrx3wHrI/AAAAAAAAAWI/wRVVOaGV75o/s1600-h/image2.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 237px; height: 172px;" src="http://3.bp.blogspot.com/_BoRubwevXAo/SIWHrx3wHrI/AAAAAAAAAWI/wRVVOaGV75o/s320/image2.JPG" alt="" id="BLOGGER_PHOTO_ID_5225732128824630962" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;We remove the vertical lines using the same technique used on the previous activity(lunar image). The Fourier Transform of the image is shown below. To get rid of the horizontal lines, we have to block the frequencies  corresponding to it. Thus, we introduced the filter below.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BoRubwevXAo/SIWKAa5nHJI/AAAAAAAAAWQ/rphfAqRiyyw/s1600-h/fft.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 234px; height: 170px;" src="http://4.bp.blogspot.com/_BoRubwevXAo/SIWKAa5nHJI/AAAAAAAAAWQ/rphfAqRiyyw/s320/fft.JPG" alt="" id="BLOGGER_PHOTO_ID_5225734682458922130" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&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/_BoRubwevXAo/SIWK0E7-DpI/AAAAAAAAAWg/v-QTGrhze28/s1600-h/fil22.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 233px; height: 169px;" src="http://2.bp.blogspot.com/_BoRubwevXAo/SIWK0E7-DpI/AAAAAAAAAWg/v-QTGrhze28/s320/fil22.JPG" alt="" id="BLOGGER_PHOTO_ID_5225735569916432018" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The resulting image is free of the horizontal lines. We then binarized this image and enhanced it using morphological operations.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_BoRubwevXAo/SIWN4ogQydI/AAAAAAAAAXA/R_YiEUV9k80/s1600-h/newim.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_BoRubwevXAo/SIWN4ogQydI/AAAAAAAAAXA/R_YiEUV9k80/s320/newim.JPG" alt="" id="BLOGGER_PHOTO_ID_5225738946718255570" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Below is the final image. Though we are successful in getting rid of the horizontal lines and the extraction of the handwritten text, the quality is not enhanced. The letter count is 106 which is obviously higher than the actual number of letters in the text.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BoRubwevXAo/SIWODdm61NI/AAAAAAAAAXI/EtyfJwvoGMI/s1600-h/final.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_BoRubwevXAo/SIWODdm61NI/AAAAAAAAAXI/EtyfJwvoGMI/s320/final.JPG" alt="" id="BLOGGER_PHOTO_ID_5225739132771947730" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I was able to finish the activity. Though the lines were successfully removed, the extracted text is not well enhanced. I hope a 9 would be reasonable.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1337006332369536377-6369115896576659764?l=iasmark.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iasmark.blogspot.com/feeds/6369115896576659764/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1337006332369536377&amp;postID=6369115896576659764' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1337006332369536377/posts/default/6369115896576659764'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1337006332369536377/posts/default/6369115896576659764'/><link rel='alternate' type='text/html' href='http://iasmark.blogspot.com/2008/07/on-processing-handwritten-text.html' title='..on preprocessing handwritten text'/><author><name>iasmark</name><uri>http://www.blogger.com/profile/10465687830029106741</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://3.bp.blogspot.com/_BoRubwevXAo/SIWHrx3wHrI/AAAAAAAAAWI/wRVVOaGV75o/s72-c/image2.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1337006332369536377.post-498219534732180215</id><published>2008-07-17T01:49:00.000-07:00</published><updated>2008-12-12T23:41:55.562-08:00</updated><title type='text'>..on binary operations</title><content type='html'>Below is an image of scattered punched paper. Our goal is approximate the size (pixel count) of a single punched paper.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BoRubwevXAo/SH8J_n_tRlI/AAAAAAAAAVQ/Xvqsv8pDeHI/s1600-h/Circles002orig.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_BoRubwevXAo/SH8J_n_tRlI/AAAAAAAAAVQ/Xvqsv8pDeHI/s320/Circles002orig.JPG" alt="" id="BLOGGER_PHOTO_ID_5223905081445664338" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Since the image is relatively large, we cut it down into twelve 256X256 subimages. We then convert them into binary images. Below are examples of the binary images.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BoRubwevXAo/SH8btaaAK1I/AAAAAAAAAVg/sM6aCj74wn8/s1600-h/cr1i.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_BoRubwevXAo/SH8btaaAK1I/AAAAAAAAAVg/sM6aCj74wn8/s320/cr1i.JPG" alt="" id="BLOGGER_PHOTO_ID_5223924559769512786" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&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://1.bp.blogspot.com/_BoRubwevXAo/SH8btp0x_7I/AAAAAAAAAVw/vdV096XXOAw/s1600-h/cr2i.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_BoRubwevXAo/SH8btp0x_7I/AAAAAAAAAVw/vdV096XXOAw/s320/cr2i.JPG" alt="" id="BLOGGER_PHOTO_ID_5223924563908362162" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;These images are not ideal. We enhanced them further by applying opening and closing morphology operator. These clean the image of isolated pixel and small holes. Below are the results of the enhancement.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BoRubwevXAo/SH8c9BuZSGI/AAAAAAAAAWA/Heku3JA8JhU/s1600-h/cr1f.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_BoRubwevXAo/SH8c9BuZSGI/AAAAAAAAAWA/Heku3JA8JhU/s320/cr1f.JPG" alt="" id="BLOGGER_PHOTO_ID_5223925927533693026" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&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://4.bp.blogspot.com/_BoRubwevXAo/SH8btk14VPI/AAAAAAAAAV4/Ofh0YhrA5W0/s1600-h/cr2f.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_BoRubwevXAo/SH8btk14VPI/AAAAAAAAAV4/Ofh0YhrA5W0/s320/cr2f.JPG" alt="" id="BLOGGER_PHOTO_ID_5223924562570794226" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;We now measure the pixel count for each blob. Since the enhancement was not able to perfectly separate individual punched paper, there are big blobs on the image. We need to filter out this outliers. We do this by getting the histogram of the pixel count.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BoRubwevXAo/SH8T7IomAhI/AAAAAAAAAVY/rfsw_U6pHAs/s1600-h/hist.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 374px; height: 283px;" src="http://4.bp.blogspot.com/_BoRubwevXAo/SH8T7IomAhI/AAAAAAAAAVY/rfsw_U6pHAs/s320/hist.gif" alt="" id="BLOGGER_PHOTO_ID_5223915999424021010" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;For this particular plot, we consider only those values between 300-600 since it is in this range that we have an approximate Gaussian distribution. Finally, we take the mean of the pixel count within this range. Our result is 428.89 with a standard deviation of 71.53. To check, we processed images of individual punched paper and measured the pixel count. The average value is 456.1 with a standard deviation of 70.69. This is a 6% error.&lt;br /&gt;&lt;br /&gt;Below is the Scilab code. I was able to implement the program such that it automatically outputs the mean pixel count and standard deviation for all images.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;numt=[];&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;v=0;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;for j=1:1:12&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;  //upload image&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;  dir('E:\acads\1st sem 08-09\186\activity9');&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;  str=strcat(['C2_',string(j),'.jpg']);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;  image1=imread(str);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;  //convert to gray scale&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;  image1=im2gray(image1);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;  //convert to binary&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;  image1=im2bw(image1,229/255);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;  //f1=scf(1);imshow(image1);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;  //make structuring element&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;  sq=ones(2,2);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;  se=mkfftfilter(sq,'binary',1);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;  //opening&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;  C1=erode(image1,se,[1,1]);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;  //f2=scf(2);imshow(C1);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;  C2=dilate(C1,se,[1,1]);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;  //f3=scf(3);imshow(C2);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;  //closing&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;  C3=dilate(C2,se,[1,1]);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;  //f4=scf(4);imshow(C3);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;  C4=erode(C3,se,[1,1]);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;  //f4=scf(2);imshow(C4);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;  //labeling&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;  [mat,n]=bwlabel(C4);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;  //counting pixel size&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;  val=[];&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;  num=[];&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;  counter=1;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;  for i=1:1:n&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;   [x,y]=find(mat==i);   &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;   val(counter)=i;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;   num(counter)=length(x);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;   counter=counter+1;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;  end&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;  for i=1:1:n&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;  //mm=v+i&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;   numt(v+i)=num(i);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;  end&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;  v=v+n;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;end&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt; //histplot([10:30:800],numt);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt; //neglect outlier&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt; numf=[];&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt; c=1;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt; for i=1:1:length(numt)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;  if numt(i)&gt;=300 &amp;amp; numt(i)&lt;=600&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;    numf(c)=numt(i);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;    c=c+1;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;   end&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;   end&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;mean(numf)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;stdev(numf)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I was able complete the activity. I was also able to implement the program automatically. I think I would give myself a 10 plus the bonus (5), thus a 15.=)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1337006332369536377-498219534732180215?l=iasmark.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iasmark.blogspot.com/feeds/498219534732180215/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1337006332369536377&amp;postID=498219534732180215' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1337006332369536377/posts/default/498219534732180215'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1337006332369536377/posts/default/498219534732180215'/><link rel='alternate' type='text/html' href='http://iasmark.blogspot.com/2008/07/on-binary-operations.html' title='..on binary operations'/><author><name>iasmark</name><uri>http://www.blogger.com/profile/10465687830029106741</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/_BoRubwevXAo/SH8J_n_tRlI/AAAAAAAAAVQ/Xvqsv8pDeHI/s72-c/Circles002orig.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1337006332369536377.post-5922487139265205508</id><published>2008-07-15T01:00:00.000-07:00</published><updated>2008-12-12T23:42:00.539-08:00</updated><title type='text'>..on morphological operations</title><content type='html'>Below are the results when different shapes are subjected to dilation and erosion using different structuring element (SE). Dilation results to an increased size of the original image while erosion reduces the size. The resulting shape is affected by the SE.  The 1st column image are the original shapes, 2nd column are the results of dilation, and the third column are the results of erosion.&lt;br /&gt;&lt;br /&gt;1. SE: 4x4 ones&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BoRubwevXAo/SHyCpUYE2TI/AAAAAAAAASw/pZuVFPKp5vU/s1600-h/sq1p1.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 180px; height: 180px;" src="http://4.bp.blogspot.com/_BoRubwevXAo/SHyCpUYE2TI/AAAAAAAAASw/pZuVFPKp5vU/s320/sq1p1.JPG" alt="" id="BLOGGER_PHOTO_ID_5223193314198870322" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&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://1.bp.blogspot.com/_BoRubwevXAo/SHyCppnQ9cI/AAAAAAAAAS4/NLvxTRktXBs/s1600-h/tp1.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 180px; height: 180px;" src="http://1.bp.blogspot.com/_BoRubwevXAo/SHyCppnQ9cI/AAAAAAAAAS4/NLvxTRktXBs/s320/tp1.JPG" alt="" id="BLOGGER_PHOTO_ID_5223193319899723202" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&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://3.bp.blogspot.com/_BoRubwevXAo/SHyCppgKg-I/AAAAAAAAATA/FqOdeyC0OUA/s1600-h/cp1.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 184px; height: 184px;" src="http://3.bp.blogspot.com/_BoRubwevXAo/SHyCppgKg-I/AAAAAAAAATA/FqOdeyC0OUA/s320/cp1.JPG" alt="" id="BLOGGER_PHOTO_ID_5223193319869940706" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&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://3.bp.blogspot.com/_BoRubwevXAo/SHyCp-mh_nI/AAAAAAAAATI/zmig154z4Do/s1600-h/sq2p1.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 193px; height: 145px;" src="http://3.bp.blogspot.com/_BoRubwevXAo/SHyCp-mh_nI/AAAAAAAAATI/zmig154z4Do/s320/sq2p1.JPG" alt="" id="BLOGGER_PHOTO_ID_5223193325533789810" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&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://3.bp.blogspot.com/_BoRubwevXAo/SHyCp2VFqYI/AAAAAAAAATQ/BkKLgMRkAN4/s1600-h/crp1.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 186px; height: 186px;" src="http://3.bp.blogspot.com/_BoRubwevXAo/SHyCp2VFqYI/AAAAAAAAATQ/BkKLgMRkAN4/s320/crp1.JPG" alt="" id="BLOGGER_PHOTO_ID_5223193323313146242" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2. SE: 2x4 ones&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BoRubwevXAo/SHyDfbDFL3I/AAAAAAAAATY/Qf2OfXShPzA/s1600-h/sq1p2.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 185px; height: 185px;" src="http://1.bp.blogspot.com/_BoRubwevXAo/SHyDfbDFL3I/AAAAAAAAATY/Qf2OfXShPzA/s320/sq1p2.JPG" alt="" id="BLOGGER_PHOTO_ID_5223194243702796146" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&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://1.bp.blogspot.com/_BoRubwevXAo/SHyDfYqhR2I/AAAAAAAAATg/0ZPEYo0b_lU/s1600-h/tp2.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 180px; height: 180px;" src="http://1.bp.blogspot.com/_BoRubwevXAo/SHyDfYqhR2I/AAAAAAAAATg/0ZPEYo0b_lU/s320/tp2.JPG" alt="" id="BLOGGER_PHOTO_ID_5223194243062908770" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&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://3.bp.blogspot.com/_BoRubwevXAo/SHyDfyn1zxI/AAAAAAAAATo/Ho_w0Zxe-VU/s1600-h/cp2.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 184px; height: 184px;" src="http://3.bp.blogspot.com/_BoRubwevXAo/SHyDfyn1zxI/AAAAAAAAATo/Ho_w0Zxe-VU/s320/cp2.JPG" alt="" id="BLOGGER_PHOTO_ID_5223194250030993170" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&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/_BoRubwevXAo/SHyDfw1EYLI/AAAAAAAAATw/zGHw9R1009s/s1600-h/sq2p2.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 186px; height: 138px;" src="http://2.bp.blogspot.com/_BoRubwevXAo/SHyDfw1EYLI/AAAAAAAAATw/zGHw9R1009s/s320/sq2p2.JPG" alt="" id="BLOGGER_PHOTO_ID_5223194249549602994" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&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://3.bp.blogspot.com/_BoRubwevXAo/SHyDgJfM7BI/AAAAAAAAAT4/kHDq_HugRFk/s1600-h/crp2.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 183px; height: 183px;" src="http://3.bp.blogspot.com/_BoRubwevXAo/SHyDgJfM7BI/AAAAAAAAAT4/kHDq_HugRFk/s320/crp2.JPG" alt="" id="BLOGGER_PHOTO_ID_5223194256168774674" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;3. SE: 4x2 ones&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BoRubwevXAo/SHyD4KadNaI/AAAAAAAAAUA/N69ZuYZjjow/s1600-h/sq1p3.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 180px; height: 180px;" src="http://4.bp.blogspot.com/_BoRubwevXAo/SHyD4KadNaI/AAAAAAAAAUA/N69ZuYZjjow/s320/sq1p3.JPG" alt="" id="BLOGGER_PHOTO_ID_5223194668734166434" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&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://4.bp.blogspot.com/_BoRubwevXAo/SHyD4BQ1GTI/AAAAAAAAAUI/TFwhz5x52Cc/s1600-h/tp3.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 180px; height: 180px;" src="http://4.bp.blogspot.com/_BoRubwevXAo/SHyD4BQ1GTI/AAAAAAAAAUI/TFwhz5x52Cc/s320/tp3.JPG" alt="" id="BLOGGER_PHOTO_ID_5223194666277869874" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&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://4.bp.blogspot.com/_BoRubwevXAo/SHyD4Q8AcpI/AAAAAAAAAUQ/1E2bBLACYVM/s1600-h/cp3.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 178px; height: 178px;" src="http://4.bp.blogspot.com/_BoRubwevXAo/SHyD4Q8AcpI/AAAAAAAAAUQ/1E2bBLACYVM/s320/cp3.JPG" alt="" id="BLOGGER_PHOTO_ID_5223194670485500562" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&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://4.bp.blogspot.com/_BoRubwevXAo/SHyD4YiceGI/AAAAAAAAAUY/dbviVL8Hu4E/s1600-h/sq2p3.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 176px; height: 104px;" src="http://4.bp.blogspot.com/_BoRubwevXAo/SHyD4YiceGI/AAAAAAAAAUY/dbviVL8Hu4E/s320/sq2p3.JPG" alt="" id="BLOGGER_PHOTO_ID_5223194672525768802" border="0" /&gt;&lt;/a&gt;&lt;br /&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://3.bp.blogspot.com/_BoRubwevXAo/SHyD4njelkI/AAAAAAAAAUg/O_yg-0-Caz0/s1600-h/crp3.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 172px; height: 172px;" src="http://3.bp.blogspot.com/_BoRubwevXAo/SHyD4njelkI/AAAAAAAAAUg/O_yg-0-Caz0/s320/crp3.JPG" alt="" id="BLOGGER_PHOTO_ID_5223194676556633666" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;4. SE: cross 5 pixel long 1 pixel thick&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BoRubwevXAo/SHyES7crAqI/AAAAAAAAAUo/OM2KuWYwyuI/s1600-h/sq1p4.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 165px; height: 165px;" src="http://1.bp.blogspot.com/_BoRubwevXAo/SHyES7crAqI/AAAAAAAAAUo/OM2KuWYwyuI/s320/sq1p4.JPG" alt="" id="BLOGGER_PHOTO_ID_5223195128573395618" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&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://1.bp.blogspot.com/_BoRubwevXAo/SHyES6p_0II/AAAAAAAAAUw/WcGgCb0GJcs/s1600-h/tp4.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 164px; height: 164px;" src="http://1.bp.blogspot.com/_BoRubwevXAo/SHyES6p_0II/AAAAAAAAAUw/WcGgCb0GJcs/s320/tp4.JPG" alt="" id="BLOGGER_PHOTO_ID_5223195128360849538" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&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://4.bp.blogspot.com/_BoRubwevXAo/SHyETKlRTHI/AAAAAAAAAU4/hixFBKheAHY/s1600-h/cp4.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 162px; height: 162px;" src="http://4.bp.blogspot.com/_BoRubwevXAo/SHyETKlRTHI/AAAAAAAAAU4/hixFBKheAHY/s320/cp4.JPG" alt="" id="BLOGGER_PHOTO_ID_5223195132635991154" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&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://1.bp.blogspot.com/_BoRubwevXAo/SHyETGKiZbI/AAAAAAAAAVA/55l5IVBjS_Q/s1600-h/sq2p4.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 166px; height: 131px;" src="http://1.bp.blogspot.com/_BoRubwevXAo/SHyETGKiZbI/AAAAAAAAAVA/55l5IVBjS_Q/s320/sq2p4.JPG" alt="" id="BLOGGER_PHOTO_ID_5223195131450123698" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&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://1.bp.blogspot.com/_BoRubwevXAo/SHyETW55PrI/AAAAAAAAAVI/ZlVm3C8ZmCw/s1600-h/crp4.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 166px; height: 166px;" src="http://1.bp.blogspot.com/_BoRubwevXAo/SHyETW55PrI/AAAAAAAAAVI/ZlVm3C8ZmCw/s320/crp4.JPG" alt="" id="BLOGGER_PHOTO_ID_5223195135943720626" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The results are consistent with the predicted sketches. As expected, the dilated image is bigger than the original while the eroded is smaller. The resulting image is affected by the SE used.&lt;br /&gt;&lt;br /&gt;I was able to finish the activity and my results are consistent. I want to give myself a 10.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1337006332369536377-5922487139265205508?l=iasmark.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iasmark.blogspot.com/feeds/5922487139265205508/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1337006332369536377&amp;postID=5922487139265205508' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1337006332369536377/posts/default/5922487139265205508'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1337006332369536377/posts/default/5922487139265205508'/><link rel='alternate' type='text/html' href='http://iasmark.blogspot.com/2008/07/on-morphological-operations.html' title='..on morphological operations'/><author><name>iasmark</name><uri>http://www.blogger.com/profile/10465687830029106741</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/_BoRubwevXAo/SHyCpUYE2TI/AAAAAAAAASw/pZuVFPKp5vU/s72-c/sq1p1.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1337006332369536377.post-3052582385135986311</id><published>2008-07-09T19:42:00.000-07:00</published><updated>2008-12-12T23:42:03.595-08:00</updated><title type='text'>..on enhancement on the frequency domain</title><content type='html'>Below are 2D sinusoidal patterns in increasing frequency (f=1,f=4,f=16).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;Patterns&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BoRubwevXAo/SHV4ZJ4xTmI/AAAAAAAAANQ/Z2W4X0dKYbY/s1600-h/pattern1b%281%29.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 178px; height: 179px;" src="http://1.bp.blogspot.com/_BoRubwevXAo/SHV4ZJ4xTmI/AAAAAAAAANQ/Z2W4X0dKYbY/s320/pattern1b%281%29.JPG" alt="" id="BLOGGER_PHOTO_ID_5221211716552052322" border="0" /&gt;&lt;/a&gt;&lt;span style="text-decoration: underline;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;f=1&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_BoRubwevXAo/SHV4EjJ8WVI/AAAAAAAAAM4/vfEfhR__HL4/s1600-h/pattern1d%284%29.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 181px; height: 181px;" src="http://2.bp.blogspot.com/_BoRubwevXAo/SHV4EjJ8WVI/AAAAAAAAAM4/vfEfhR__HL4/s320/pattern1d%284%29.JPG" alt="" id="BLOGGER_PHOTO_ID_5221211362557712722" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;f=4&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&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/_BoRubwevXAo/SHV4EwoqpSI/AAAAAAAAANA/cHOxlzPXehc/s1600-h/pattern1f%2816%29.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 181px; height: 181px;" src="http://1.bp.blogspot.com/_BoRubwevXAo/SHV4EwoqpSI/AAAAAAAAANA/cHOxlzPXehc/s320/pattern1f%2816%29.JPG" alt="" id="BLOGGER_PHOTO_ID_5221211366176236834" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;f=16&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Taking the fourier transform (FT) of these patterns,  we would notice that as the frequency increases, the separation between the two peaks increases. The two symmetric peaks represent the frequency of the pattern. As the frequency increases, the peaks deviates further from the center.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;Fourier Transform of the Patterns&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BoRubwevXAo/SHV5N3wouHI/AAAAAAAAANY/k27iWrUcCZk/s1600-h/fft1b.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 175px; height: 188px;" src="http://3.bp.blogspot.com/_BoRubwevXAo/SHV5N3wouHI/AAAAAAAAANY/k27iWrUcCZk/s320/fft1b.JPG" alt="" id="BLOGGER_PHOTO_ID_5221212622219163762" border="0" /&gt;&lt;/a&gt;&lt;span style="text-decoration: underline;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;                   f=1&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_BoRubwevXAo/SHV5xnsovJI/AAAAAAAAANg/XWwBzmSS-PQ/s1600-h/fft1d.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 169px; height: 185px;" src="http://2.bp.blogspot.com/_BoRubwevXAo/SHV5xnsovJI/AAAAAAAAANg/XWwBzmSS-PQ/s320/fft1d.JPG" alt="" id="BLOGGER_PHOTO_ID_5221213236382710930" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;f=4&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BoRubwevXAo/SHV5x1E-XII/AAAAAAAAANo/0yPyzq7uvgg/s1600-h/fft1f.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 173px; height: 182px;" src="http://1.bp.blogspot.com/_BoRubwevXAo/SHV5x1E-XII/AAAAAAAAANo/0yPyzq7uvgg/s320/fft1f.JPG" alt="" id="BLOGGER_PHOTO_ID_5221213239974452354" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;f=16&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;We now consider rotated patterns. These patterns were generated by:&lt;br /&gt;z = sin(2*pi*f*(Y*sin(theta) + X*cos(theta))) where theta=30. The frequencies are f=4 and f=16.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-size:85%;"&gt;Rotated Patterns&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BoRubwevXAo/SHV6d3P6lLI/AAAAAAAAANw/kcWtckbToXU/s1600-h/patternrot1a%284%29.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 172px; height: 172px;" src="http://1.bp.blogspot.com/_BoRubwevXAo/SHV6d3P6lLI/AAAAAAAAANw/kcWtckbToXU/s320/patternrot1a%284%29.JPG" alt="" id="BLOGGER_PHOTO_ID_5221213996471456946" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;f=4&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://3.bp.blogspot.com/_BoRubwevXAo/SHV6eBjrtDI/AAAAAAAAAN4/e3j8Gi2U85k/s1600-h/patternrot1b%2816%29.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 168px; height: 168px;" src="http://3.bp.blogspot.com/_BoRubwevXAo/SHV6eBjrtDI/AAAAAAAAAN4/e3j8Gi2U85k/s320/patternrot1b%2816%29.JPG" alt="" id="BLOGGER_PHOTO_ID_5221213999238722610" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;f=16&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The resulting FT are also rotated. The rotation of the pattern results to the rotation of their FT's.&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;Fourier Transform of the Rotated Patterns&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_BoRubwevXAo/SHV69i4cwyI/AAAAAAAAAOA/l2QjvQqLEdI/s1600-h/fftrot1a.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 165px; height: 184px;" src="http://2.bp.blogspot.com/_BoRubwevXAo/SHV69i4cwyI/AAAAAAAAAOA/l2QjvQqLEdI/s320/fftrot1a.JPG" alt="" id="BLOGGER_PHOTO_ID_5221214540760138530" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;f=4&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://1.bp.blogspot.com/_BoRubwevXAo/SHV693U2iiI/AAAAAAAAAOI/tZ29ldEDEPI/s1600-h/fftrot1b.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 165px; height: 185px;" src="http://1.bp.blogspot.com/_BoRubwevXAo/SHV693U2iiI/AAAAAAAAAOI/tZ29ldEDEPI/s320/fftrot1b.JPG" alt="" id="BLOGGER_PHOTO_ID_5221214546247977506" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;f=16&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;We now consider a combination of sinusoidal patterns on both X and Y axis, as well as rotated patterns.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;Combined Patterns&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BoRubwevXAo/SHV7v8IOnLI/AAAAAAAAAOQ/ILmtWG3NgTU/s1600-h/patterncomb1a%284,4%29.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_BoRubwevXAo/SHV7v8IOnLI/AAAAAAAAAOQ/ILmtWG3NgTU/s320/patterncomb1a%284,4%29.JPG" alt="" id="BLOGGER_PHOTO_ID_5221215406530665650" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;fx=4&lt;br /&gt;fy=4&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/_BoRubwevXAo/SHV7wByyZ6I/AAAAAAAAAOY/21fGTIb627I/s1600-h/patterncomb1b%284,16%29.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_BoRubwevXAo/SHV7wByyZ6I/AAAAAAAAAOY/21fGTIb627I/s320/patterncomb1b%284,16%29.JPG" alt="" id="BLOGGER_PHOTO_ID_5221215408051349410" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;fx=4&lt;br /&gt;fy=16&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://1.bp.blogspot.com/_BoRubwevXAo/SHV7wQQoFsI/AAAAAAAAAOg/DGJaZSbTb4A/s1600-h/patterncomb1c%284,30%29.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_BoRubwevXAo/SHV7wQQoFsI/AAAAAAAAAOg/DGJaZSbTb4A/s320/patterncomb1c%284,30%29.JPG" alt="" id="BLOGGER_PHOTO_ID_5221215411934598850" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;f=8&lt;br /&gt;theta=30&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The resulting FT created multiple peaks. For fx=fy=4, the peaks are symmetric and are equidistant. When the frequency along one direction is increase, the peaks are stretch further along that direction. Again, we observe that the rotation of the pattern resulted to the rotation of the FT.&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-size:85%;"&gt;Fourier Transform of the Combined Patterns&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BoRubwevXAo/SHV8flvfdcI/AAAAAAAAAOo/yhdvYq9HiAA/s1600-h/fftcomb1a.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_BoRubwevXAo/SHV8flvfdcI/AAAAAAAAAOo/yhdvYq9HiAA/s320/fftcomb1a.JPG" alt="" id="BLOGGER_PHOTO_ID_5221216225155052994" border="0" /&gt;&lt;/a&gt;&lt;span style="text-decoration: underline;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;fx=4&lt;br /&gt;fy=4&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_BoRubwevXAo/SHV8fpCE5zI/AAAAAAAAAOw/vG-ebjGqnsk/s1600-h/fftcomb1b.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_BoRubwevXAo/SHV8fpCE5zI/AAAAAAAAAOw/vG-ebjGqnsk/s320/fftcomb1b.JPG" alt="" id="BLOGGER_PHOTO_ID_5221216226038310706" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;fx=4&lt;br /&gt;fy=16&lt;br /&gt;&lt;br /&gt;&lt;br /&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://2.bp.blogspot.com/_BoRubwevXAo/SHV8fy7vocI/AAAAAAAAAO4/FqgP2q4QP60/s1600-h/fftcomb1c.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_BoRubwevXAo/SHV8fy7vocI/AAAAAAAAAO4/FqgP2q4QP60/s320/fftcomb1c.JPG" alt="" id="BLOGGER_PHOTO_ID_5221216228696105410" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;f=8&lt;br /&gt;theta=30&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Fingerprint: Ridge Enhancement&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Below is an image of a fingerprint in grayscale.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BoRubwevXAo/SHXyRKp869I/AAAAAAAAAPA/sRl09aYU6ds/s1600-h/fingerprint3.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 167px; height: 167px;" src="http://4.bp.blogspot.com/_BoRubwevXAo/SHXyRKp869I/AAAAAAAAAPA/sRl09aYU6ds/s320/fingerprint3.JPG" alt="" id="BLOGGER_PHOTO_ID_5221345719737969618" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;We take the FT of the image and filter out other frequencies to enhanced the ridges.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_BoRubwevXAo/SHXzp9Hv8yI/AAAAAAAAAPI/B6MWX-7aESU/s1600-h/fpres1.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_BoRubwevXAo/SHXzp9Hv8yI/AAAAAAAAAPI/B6MWX-7aESU/s320/fpres1.JPG" alt="" id="BLOGGER_PHOTO_ID_5221347245113209634" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Lunar Landing Scanned Pictures: Line Removal&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;We also apply the same technique on the image below.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BoRubwevXAo/SHX4uBJDEZI/AAAAAAAAAPY/jbjCxk_GDjU/s1600-h/im.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 234px; height: 167px;" src="http://3.bp.blogspot.com/_BoRubwevXAo/SHX4uBJDEZI/AAAAAAAAAPY/jbjCxk_GDjU/s320/im.JPG" alt="" id="BLOGGER_PHOTO_ID_5221352812470014354" border="0" /&gt;&lt;/a&gt;&lt;span style="text-decoration: underline;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_BoRubwevXAo/SHX-t4ObzzI/AAAAAAAAAPw/m3mk7sxcppc/s1600-h/imo.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 237px; height: 167px;" src="http://2.bp.blogspot.com/_BoRubwevXAo/SHX-t4ObzzI/AAAAAAAAAPw/m3mk7sxcppc/s320/imo.JPG" alt="" id="BLOGGER_PHOTO_ID_5221359407146454834" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;grayscale&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/_BoRubwevXAo/SHxvHeDeAwI/AAAAAAAAASo/0yfXEEGhmFQ/s1600-h/fil4.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 236px; height: 168px;" src="http://2.bp.blogspot.com/_BoRubwevXAo/SHxvHeDeAwI/AAAAAAAAASo/0yfXEEGhmFQ/s320/fil4.JPG" alt="" id="BLOGGER_PHOTO_ID_5223171841960313602" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; Filter&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/_BoRubwevXAo/SHxvHe2uhoI/AAAAAAAAASg/q6TG5uastQU/s1600-h/final.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 236px; height: 168px;" src="http://2.bp.blogspot.com/_BoRubwevXAo/SHxvHe2uhoI/AAAAAAAAASg/q6TG5uastQU/s320/final.JPG" alt="" id="BLOGGER_PHOTO_ID_5223171842175305346" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Resulting Image&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The lines are minimized.&lt;br /&gt;&lt;br /&gt;I was able to complete the activity but the resulting images are not perfectly enhanced. I don't think I deserve a 10 on this. I hope  a 9  would be justifiable.&lt;br /&gt;&lt;br /&gt;Acknowledgment to Ed for the scanned fingerprint.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1337006332369536377-3052582385135986311?l=iasmark.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iasmark.blogspot.com/feeds/3052582385135986311/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1337006332369536377&amp;postID=3052582385135986311' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1337006332369536377/posts/default/3052582385135986311'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1337006332369536377/posts/default/3052582385135986311'/><link rel='alternate' type='text/html' href='http://iasmark.blogspot.com/2008/07/on-enhancement-on-frequency-domain.html' title='..on enhancement on the frequency domain'/><author><name>iasmark</name><uri>http://www.blogger.com/profile/10465687830029106741</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/_BoRubwevXAo/SHV4ZJ4xTmI/AAAAAAAAANQ/Z2W4X0dKYbY/s72-c/pattern1b%281%29.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1337006332369536377.post-4996922682127593186</id><published>2008-07-07T19:40:00.000-07:00</published><updated>2008-12-12T23:42:15.235-08:00</updated><title type='text'>..on fourier transform model of image formation</title><content type='html'>The Fourier Transform (FT) of an image is given by:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BoRubwevXAo/SHLXrppQmiI/AAAAAAAAAH4/yKPn5cogPgE/s1600-h/eq.bmp"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_BoRubwevXAo/SHLXrppQmiI/AAAAAAAAAH4/yKPn5cogPgE/s320/eq.bmp" alt="" id="BLOGGER_PHOTO_ID_5220472062989081122" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Below are 128x128 bitmap images of circles with different radius and letter A's in varying size.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_BoRubwevXAo/SHLVBYkEJFI/AAAAAAAAAHI/DotRpC7yXxY/s1600-h/circle.bmp"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_BoRubwevXAo/SHLVBYkEJFI/AAAAAAAAAHI/DotRpC7yXxY/s320/circle.bmp" alt="" id="BLOGGER_PHOTO_ID_5220469137826128978" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BoRubwevXAo/SHLbQ92ZejI/AAAAAAAAAIg/G8jVTQPAWfI/s1600-h/A.bmp"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_BoRubwevXAo/SHLbQ92ZejI/AAAAAAAAAIg/G8jVTQPAWfI/s320/A.bmp" alt="" id="BLOGGER_PHOTO_ID_5220476002602940978" border="0" /&gt;&lt;/a&gt;&lt;br /&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://4.bp.blogspot.com/_BoRubwevXAo/SHLVSVcuo4I/AAAAAAAAAHY/ERm-xrH347U/s1600-h/circle3.bmp"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_BoRubwevXAo/SHLVSVcuo4I/AAAAAAAAAHY/ERm-xrH347U/s320/circle3.bmp" alt="" id="BLOGGER_PHOTO_ID_5220469429047829378" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BoRubwevXAo/SHLbYMNI-II/AAAAAAAAAIo/mpAH5emXIHY/s1600-h/A2.bmp"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_BoRubwevXAo/SHLbYMNI-II/AAAAAAAAAIo/mpAH5emXIHY/s320/A2.bmp" alt="" id="BLOGGER_PHOTO_ID_5220476126715508866" border="0" /&gt;&lt;/a&gt;&lt;br /&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://3.bp.blogspot.com/_BoRubwevXAo/SHLVKJMWKEI/AAAAAAAAAHQ/nZcno0SsyH0/s1600-h/circle2.bmp"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_BoRubwevXAo/SHLVKJMWKEI/AAAAAAAAAHQ/nZcno0SsyH0/s320/circle2.bmp" alt="" id="BLOGGER_PHOTO_ID_5220469288318937154" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BoRubwevXAo/SHLbk09PnaI/AAAAAAAAAIw/ve4e6eC2aR8/s1600-h/A3.bmp"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_BoRubwevXAo/SHLbk09PnaI/AAAAAAAAAIw/ve4e6eC2aR8/s320/A3.bmp" alt="" id="BLOGGER_PHOTO_ID_5220476343813119394" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;We apply discrete 2D FFT on these images. The output of the FFT is a complex number. Getting the modulus gives us the intensity.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BoRubwevXAo/SHLWfYXCQtI/AAAAAAAAAHo/B_eqQZDhG-A/s1600-h/absfftcircle.bmp"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_BoRubwevXAo/SHLWfYXCQtI/AAAAAAAAAHo/B_eqQZDhG-A/s320/absfftcircle.bmp" alt="" id="BLOGGER_PHOTO_ID_5220470752679183058" border="0" /&gt;&lt;/a&gt;&lt;span style="text-decoration: underline;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Big Circle&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BoRubwevXAo/SHLcLfDZekI/AAAAAAAAAI4/RfAKMrDhZR4/s1600-h/absfftA.bmp"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 207px;" src="http://3.bp.blogspot.com/_BoRubwevXAo/SHLcLfDZekI/AAAAAAAAAI4/RfAKMrDhZR4/s320/absfftA.bmp" alt="" id="BLOGGER_PHOTO_ID_5220477007948249666" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Big A&lt;br /&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://1.bp.blogspot.com/_BoRubwevXAo/SHLYliG6bRI/AAAAAAAAAIA/LNiw6vXQ_cY/s1600-h/absfftcircle3.bmp"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_BoRubwevXAo/SHLYliG6bRI/AAAAAAAAAIA/LNiw6vXQ_cY/s320/absfftcircle3.bmp" alt="" id="BLOGGER_PHOTO_ID_5220473057398385938" border="0" /&gt;&lt;/a&gt;&lt;span style="text-decoration: underline;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Medium Circle&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BoRubwevXAo/SHLdO31P0AI/AAAAAAAAAJA/A_gR9l6xCDI/s1600-h/absfftA2.bmp"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_BoRubwevXAo/SHLdO31P0AI/AAAAAAAAAJA/A_gR9l6xCDI/s320/absfftA2.bmp" alt="" id="BLOGGER_PHOTO_ID_5220478165651017730" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Medium A&lt;br /&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://4.bp.blogspot.com/_BoRubwevXAo/SHLXTHszPHI/AAAAAAAAAHw/XYoka3csNY4/s1600-h/absfftcircle2.bmp"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_BoRubwevXAo/SHLXTHszPHI/AAAAAAAAAHw/XYoka3csNY4/s320/absfftcircle2.bmp" alt="" id="BLOGGER_PHOTO_ID_5220471641560267890" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Small Circle&lt;br /&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/_BoRubwevXAo/SHLeOBWZCbI/AAAAAAAAAJI/BtUV9z4lfL8/s1600-h/absfftA3.bmp"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_BoRubwevXAo/SHLeOBWZCbI/AAAAAAAAAJI/BtUV9z4lfL8/s320/absfftA3.bmp" alt="" id="BLOGGER_PHOTO_ID_5220479250537712050" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Small A&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Applying fftshift() gives us:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BoRubwevXAo/SHLZ_OP_ijI/AAAAAAAAAII/5i1UqrdC_PE/s1600-h/fftshiftabsfftcircle.bmp"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_BoRubwevXAo/SHLZ_OP_ijI/AAAAAAAAAII/5i1UqrdC_PE/s320/fftshiftabsfftcircle.bmp" alt="" id="BLOGGER_PHOTO_ID_5220474598255987250" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Big Circle&lt;br /&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://4.bp.blogspot.com/_BoRubwevXAo/SHMFM-HnMfI/AAAAAAAAAJQ/Xcy3XyuYui0/s1600-h/fftshiftabsfftA.bmp"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_BoRubwevXAo/SHMFM-HnMfI/AAAAAAAAAJQ/Xcy3XyuYui0/s320/fftshiftabsfftA.bmp" alt="" id="BLOGGER_PHOTO_ID_5220522113444033010" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Big A&lt;br /&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/_BoRubwevXAo/SHLa2kCvCTI/AAAAAAAAAIY/F5sp8cfTHS4/s1600-h/fftshiftabsfftcircle3.bmp"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_BoRubwevXAo/SHLa2kCvCTI/AAAAAAAAAIY/F5sp8cfTHS4/s320/fftshiftabsfftcircle3.bmp" alt="" id="BLOGGER_PHOTO_ID_5220475548998764850" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Medium Circle&lt;br /&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://4.bp.blogspot.com/_BoRubwevXAo/SHMHRUXhwpI/AAAAAAAAAJY/_UVfIysoBuc/s1600-h/fftshiftabsfftA2.bmp"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_BoRubwevXAo/SHMHRUXhwpI/AAAAAAAAAJY/_UVfIysoBuc/s320/fftshiftabsfftA2.bmp" alt="" id="BLOGGER_PHOTO_ID_5220524387159098002" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Medium A&lt;br /&gt;&lt;br /&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/_BoRubwevXAo/SHLamWMA_6I/AAAAAAAAAIQ/y2SFsk7uPhc/s1600-h/fftshiftabsfftcircle2.bmp"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_BoRubwevXAo/SHLamWMA_6I/AAAAAAAAAIQ/y2SFsk7uPhc/s320/fftshiftabsfftcircle2.bmp" alt="" id="BLOGGER_PHOTO_ID_5220475270401687458" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Small Circle&lt;br /&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://3.bp.blogspot.com/_BoRubwevXAo/SHMHqRakvCI/AAAAAAAAAJg/A_BDck1_Hww/s1600-h/fftshiftabsfftA3.bmp"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_BoRubwevXAo/SHMHqRakvCI/AAAAAAAAAJg/A_BDck1_Hww/s320/fftshiftabsfftA3.bmp" alt="" id="BLOGGER_PHOTO_ID_5220524815863299106" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Small A&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;These images are consistent with the analytical FT of the circle. As the radius of the circle decreases, we clearly observe the airy disc. The same for the letter A. As the size decreases, the airy patterns becomes more distinguishable. Applying FFT twice on the image results to the original image, but as we notice for letter A, the resulting images are inverted.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_BoRubwevXAo/SHMIDUwfk_I/AAAAAAAAAJo/RlQTNKdqVkY/s1600-h/absfftfftcircle.bmp"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_BoRubwevXAo/SHMIDUwfk_I/AAAAAAAAAJo/RlQTNKdqVkY/s320/absfftfftcircle.bmp" alt="" id="BLOGGER_PHOTO_ID_5220525246257271794" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&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/_BoRubwevXAo/SHMNNbHvy7I/AAAAAAAAAKA/5jgY2qg3TVY/s1600-h/absfftfftA.bmp"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_BoRubwevXAo/SHMNNbHvy7I/AAAAAAAAAKA/5jgY2qg3TVY/s320/absfftfftA.bmp" alt="" id="BLOGGER_PHOTO_ID_5220530917322247090" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&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://1.bp.blogspot.com/_BoRubwevXAo/SHMLV7jUbJI/AAAAAAAAAJ4/LTf_UOHkBXI/s1600-h/absfftfftcircle3.bmp"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_BoRubwevXAo/SHMLV7jUbJI/AAAAAAAAAJ4/LTf_UOHkBXI/s320/absfftfftcircle3.bmp" alt="" id="BLOGGER_PHOTO_ID_5220528864443526290" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&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://4.bp.blogspot.com/_BoRubwevXAo/SHMNkGAazOI/AAAAAAAAAKI/eDYx36kzE8U/s1600-h/absfftfftA2.bmp"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_BoRubwevXAo/SHMNkGAazOI/AAAAAAAAAKI/eDYx36kzE8U/s320/absfftfftA2.bmp" alt="" id="BLOGGER_PHOTO_ID_5220531306791357666" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&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://1.bp.blogspot.com/_BoRubwevXAo/SHMJ2-BY7BI/AAAAAAAAAJw/t1Q2O2cJxSc/s1600-h/absfftfftcircle2.bmp"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_BoRubwevXAo/SHMJ2-BY7BI/AAAAAAAAAJw/t1Q2O2cJxSc/s320/absfftfftcircle2.bmp" alt="" id="BLOGGER_PHOTO_ID_5220527233018948626" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&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/_BoRubwevXAo/SHMN5KJApUI/AAAAAAAAAKQ/haYRJTV6WR4/s1600-h/absfftfftA3.bmp"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_BoRubwevXAo/SHMN5KJApUI/AAAAAAAAAKQ/haYRJTV6WR4/s320/absfftfftA3.bmp" alt="" id="BLOGGER_PHOTO_ID_5220531668678387010" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Convolution&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The convolution of two 2D function f and g is given by:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BoRubwevXAo/SHMOfwv89tI/AAAAAAAAAKY/COu9eLuVRNI/s1600-h/eq2.bmp"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_BoRubwevXAo/SHMOfwv89tI/AAAAAAAAAKY/COu9eLuVRNI/s320/eq2.bmp" alt="" id="BLOGGER_PHOTO_ID_5220532331877299922" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This could be represented as h=f*g. If F and G are the FT of f and g, respectively, then the convolution is just simply H=FG. Below are the convolution images between the word VIP and the circles of varying radius. The circle serves as the aperture. As the radius of the circle decreases, the aperture becomes smaller and the resulting image is blurred. The bigger the aperture, the sharper the image.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BoRubwevXAo/SHMXxvqX2GI/AAAAAAAAAKo/Q-7jxWSDIKI/s1600-h/vip.bmp"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_BoRubwevXAo/SHMXxvqX2GI/AAAAAAAAAKo/Q-7jxWSDIKI/s320/vip.bmp" alt="" id="BLOGGER_PHOTO_ID_5220542536427755618" border="0" /&gt;&lt;/a&gt;&lt;br /&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/_BoRubwevXAo/SHLVBYkEJFI/AAAAAAAAAHI/DotRpC7yXxY/s1600-h/circle.bmp"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_BoRubwevXAo/SHLVBYkEJFI/AAAAAAAAAHI/DotRpC7yXxY/s320/circle.bmp" alt="" id="BLOGGER_PHOTO_ID_5220469137826128978" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Aperture 1&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://1.bp.blogspot.com/_BoRubwevXAo/SHMYUwg0zcI/AAAAAAAAAKw/1MzSdrsjdcg/s1600-h/vipc.bmp"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_BoRubwevXAo/SHMYUwg0zcI/AAAAAAAAAKw/1MzSdrsjdcg/s320/vipc.bmp" alt="" id="BLOGGER_PHOTO_ID_5220543137951567298" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Image 1&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://4.bp.blogspot.com/_BoRubwevXAo/SHLVSVcuo4I/AAAAAAAAAHY/ERm-xrH347U/s1600-h/circle3.bmp"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_BoRubwevXAo/SHLVSVcuo4I/AAAAAAAAAHY/ERm-xrH347U/s320/circle3.bmp" alt="" id="BLOGGER_PHOTO_ID_5220469429047829378" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Aperture 2&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://3.bp.blogspot.com/_BoRubwevXAo/SHMZz7jGHhI/AAAAAAAAALI/_O83_YIkQSs/s1600-h/vipc3.bmp"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_BoRubwevXAo/SHMZz7jGHhI/AAAAAAAAALI/_O83_YIkQSs/s320/vipc3.bmp" alt="" id="BLOGGER_PHOTO_ID_5220544773001453074" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Image 2&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://3.bp.blogspot.com/_BoRubwevXAo/SHMani2XE-I/AAAAAAAAALY/R9IbvrqFLh4/s1600-h/circle4.bmp"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_BoRubwevXAo/SHMani2XE-I/AAAAAAAAALY/R9IbvrqFLh4/s320/circle4.bmp" alt="" id="BLOGGER_PHOTO_ID_5220545659724567522" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Aperture 3&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://1.bp.blogspot.com/_BoRubwevXAo/SHMab_XcGXI/AAAAAAAAALQ/OUHcn68Bujc/s1600-h/vipc4.bmp"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_BoRubwevXAo/SHMab_XcGXI/AAAAAAAAALQ/OUHcn68Bujc/s320/vipc4.bmp" alt="" id="BLOGGER_PHOTO_ID_5220545461221071218" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Image 3&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;&lt;br /&gt;Correlation&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The correlation of two 2D function f and g is given by:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BoRubwevXAo/SHMXcFktwYI/AAAAAAAAAKg/uV49FdV6ndU/s1600-h/eq3.bmp"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_BoRubwevXAo/SHMXcFktwYI/AAAAAAAAAKg/uV49FdV6ndU/s320/eq3.bmp" alt="" id="BLOGGER_PHOTO_ID_5220542164352483714" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This could be represented as p=fog. If F and G are the FT of f and g, respectively, then the correlation is just simply P=F.G. The correlation measures the similarity between the two functions. Some of its application are as follows:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Template Matching&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Below are the correlation images between the sentence "THE RAIN IN SPAIN STAYS MAINLY IN THE PLAIN", and the letter "A" and the word "IN". We notice that the maximum in the resulting images occurs on  the part of the sentence (image) where there is a presence of A or a form like A. Same is true for the word IN.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BoRubwevXAo/SHMa6VA43gI/AAAAAAAAALg/IuYG8EmWaXc/s1600-h/text.bmp"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_BoRubwevXAo/SHMa6VA43gI/AAAAAAAAALg/IuYG8EmWaXc/s320/text.bmp" alt="" id="BLOGGER_PHOTO_ID_5220545982428143106" border="0" /&gt;&lt;/a&gt;&lt;br /&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://1.bp.blogspot.com/_BoRubwevXAo/SHMbC6ZEhpI/AAAAAAAAALo/Sm9wb-YJQPk/s1600-h/textA.bmp"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 128px; height: 128px;" src="http://1.bp.blogspot.com/_BoRubwevXAo/SHMbC6ZEhpI/AAAAAAAAALo/Sm9wb-YJQPk/s320/textA.bmp" alt="" id="BLOGGER_PHOTO_ID_5220546129900635794" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BoRubwevXAo/SHMbX94INsI/AAAAAAAAALw/gU9DrEIo6to/s1600-h/textIN.bmp"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_BoRubwevXAo/SHMbX94INsI/AAAAAAAAALw/gU9DrEIo6to/s320/textIN.bmp" alt="" id="BLOGGER_PHOTO_ID_5220546491613460162" border="0" /&gt;&lt;/a&gt;&lt;br /&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://1.bp.blogspot.com/_BoRubwevXAo/SHMbfWsqe1I/AAAAAAAAAL4/vGw4hp0BONg/s1600-h/textresult.bmp"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_BoRubwevXAo/SHMbfWsqe1I/AAAAAAAAAL4/vGw4hp0BONg/s320/textresult.bmp" alt="" id="BLOGGER_PHOTO_ID_5220546618535344978" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;A&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://4.bp.blogspot.com/_BoRubwevXAo/SHMcLuXgrJI/AAAAAAAAAMI/UbFJkS7yaM4/s1600-h/textresultIN.bmp"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_BoRubwevXAo/SHMcLuXgrJI/AAAAAAAAAMI/UbFJkS7yaM4/s320/textresultIN.bmp" alt="" id="BLOGGER_PHOTO_ID_5220547380803316882" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;IN&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;Edge Detection&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Below are images resulting from the convolution of VIP and a 3x3 matrix pattern of an edge such that the total sum is zero. The first is a horizontal, the second is a vertical, and the third is a spot pattern. Notice that for the first pattern, the horizontal edges of the image are highlighted. For the second pattern, it is the vertical edges that are highlighted. And for the spot pattern, all the edges are highlighted.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BoRubwevXAo/SHMd_R0AYoI/AAAAAAAAAMQ/hXbouac6w7A/s1600-h/pattern1.bmp"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_BoRubwevXAo/SHMd_R0AYoI/AAAAAAAAAMQ/hXbouac6w7A/s320/pattern1.bmp" alt="" id="BLOGGER_PHOTO_ID_5220549366003032706" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Horizontal Pattern&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://4.bp.blogspot.com/_BoRubwevXAo/SHMeXflt0RI/AAAAAAAAAMY/rA8D2WvbuYo/s1600-h/pattern2.bmp"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_BoRubwevXAo/SHMeXflt0RI/AAAAAAAAAMY/rA8D2WvbuYo/s320/pattern2.bmp" alt="" id="BLOGGER_PHOTO_ID_5220549782018052370" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Vertical Pattern&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://4.bp.blogspot.com/_BoRubwevXAo/SHMefmP0iOI/AAAAAAAAAMg/nlEoxUwT76Q/s1600-h/pattern3.bmp"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_BoRubwevXAo/SHMefmP0iOI/AAAAAAAAAMg/nlEoxUwT76Q/s320/pattern3.bmp" alt="" id="BLOGGER_PHOTO_ID_5220549921244219618" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Spot Pattern&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I was able to finish the activity with the results consistent with what  were expected. I think I deserve a 10.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1337006332369536377-4996922682127593186?l=iasmark.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iasmark.blogspot.com/feeds/4996922682127593186/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1337006332369536377&amp;postID=4996922682127593186' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1337006332369536377/posts/default/4996922682127593186'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1337006332369536377/posts/default/4996922682127593186'/><link rel='alternate' type='text/html' href='http://iasmark.blogspot.com/2008/07/on-fourier-transform-model-of-image.html' title='..on fourier transform model of image formation'/><author><name>iasmark</name><uri>http://www.blogger.com/profile/10465687830029106741</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://3.bp.blogspot.com/_BoRubwevXAo/SHLXrppQmiI/AAAAAAAAAH4/yKPn5cogPgE/s72-c/eq.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1337006332369536377.post-3723239858746280901</id><published>2008-07-02T18:08:00.000-07:00</published><updated>2008-12-12T23:42:17.095-08:00</updated><title type='text'>..on physical measurements from discrete fourier transforms</title><content type='html'>The discrete fourier transform (DFT) is given by:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BoRubwevXAo/SGwnaWxdOSI/AAAAAAAAAF4/oRsNEkzOcq0/s1600-h/dft+equation.bmp"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_BoRubwevXAo/SGwnaWxdOSI/AAAAAAAAAF4/oRsNEkzOcq0/s320/dft+equation.bmp" alt="" id="BLOGGER_PHOTO_ID_5218589401958660386" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;DFT could be used on getting the fourier transform (FT) of measured signal, numerically validating an analytic computation, and obtaining numerical results for signals whose FT have difficult or no analytic form.&lt;br /&gt;&lt;br /&gt;To illustrate how DFT works, we first generate a sinusoidal signal (sin2pi()ft). Below is the plot of the generated signal with f=5 (frequency), T=2 (total signal time), N=256 (number of samples), and the sampling interval (dt) is given by dt=T/N.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BoRubwevXAo/SGwp9fVUVBI/AAAAAAAAAGA/VUlq4k9YpaU/s1600-h/sine.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_BoRubwevXAo/SGwp9fVUVBI/AAAAAAAAAGA/VUlq4k9YpaU/s320/sine.gif" alt="" id="BLOGGER_PHOTO_ID_5218592204575233042" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;We get the fourier transform of the signal. To get the frequency scale, we note that by Nyquist Theorem, the maximum frequency detectable is given by Fmax=1/(2dt). Since half of the output of the FT is just the mirror image of the other half, we just simply shift the half axis, and df=2Fmax/N. The resulting plot is:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_BoRubwevXAo/SGwseOH_ENI/AAAAAAAAAGI/hzjRDqkOsNc/s1600-h/dft.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_BoRubwevXAo/SGwseOH_ENI/AAAAAAAAAGI/hzjRDqkOsNc/s320/dft.gif" alt="" id="BLOGGER_PHOTO_ID_5218594965914849490" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The plot peaks at f=5/-5. This is consistent since the frequency of the generated signal is 5. The DFT could also be applied for images. Instead of a temporal signal (temporal domain), we have a spatial signal (spatial domain). The number of frequencies resulting from DFT represents the number of pixels on the original image. The method utilizes the 2 dimensional DFT given by:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BoRubwevXAo/SGwwM74yxpI/AAAAAAAAAGQ/fY5KWRm6dD4/s1600-h/dft2.bmp"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_BoRubwevXAo/SGwwM74yxpI/AAAAAAAAAGQ/fY5KWRm6dD4/s320/dft2.bmp" alt="" id="BLOGGER_PHOTO_ID_5218599067008026258" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The value of each point of X is obtained by multiplying the spatial image with the corresponding base function and summing the result. The base functions are sine and cosine with increasing frequencies. The resulting fourier transform is a complex valued number real and imaginary which represent the magnitude and the phase.&lt;br /&gt;(source: http://homepages.inf.ed.ac.uk/rbf/HIPR2/fourier.htm)&lt;br /&gt;&lt;br /&gt;For a fluorescent lamp that flickers around 120Hz, the threshold sampling rate is given by dt=1/(2F). This is around 0.004167 sec. Below is the resulting DFT generated with f=120. In order to have  a dt that is below the  sampling threshold, N is set to 500 with T=2. We see that peak occurred at around 120. For comparison, we set N=400 with T=2 and we could observe that DFT failed to detect it correctly (peak at 80).&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BoRubwevXAo/SGw_oXPPHEI/AAAAAAAAAGY/jqEn8-_rF9c/s1600-h/f120.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_BoRubwevXAo/SGw_oXPPHEI/AAAAAAAAAGY/jqEn8-_rF9c/s320/f120.gif" alt="" id="BLOGGER_PHOTO_ID_5218616030880799810" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;F=120&lt;br /&gt;N=500&lt;br /&gt;T=2&lt;br /&gt;Detected F=120&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://3.bp.blogspot.com/_BoRubwevXAo/SGw_37wBkUI/AAAAAAAAAGg/ct4bJAC4K7U/s1600-h/N400.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_BoRubwevXAo/SGw_37wBkUI/AAAAAAAAAGg/ct4bJAC4K7U/s320/N400.gif" alt="" id="BLOGGER_PHOTO_ID_5218616298380038466" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;F=120&lt;br /&gt;N=400&lt;br /&gt;T=2&lt;br /&gt;Detected F=80&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Increasing the number of samples (N) increases the frequency range detectable. If the original N results to a sampling interval greater than the threshold indicated by the Nyquist Theorem, increasing N would increase the accuracy of the detected frequency. Below are the plots with increasing N (15,100,256). We see that the results are consistent with the analysis.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BoRubwevXAo/SGxBg97P0rI/AAAAAAAAAG4/VSK5x6S1lrE/s1600-h/N15.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_BoRubwevXAo/SGxBg97P0rI/AAAAAAAAAG4/VSK5x6S1lrE/s320/N15.gif" alt="" id="BLOGGER_PHOTO_ID_5218618102850245298" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;F=5&lt;br /&gt;N=15&lt;br /&gt;Detected F=2.3&lt;br /&gt;Max F=4&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://3.bp.blogspot.com/_BoRubwevXAo/SGxA_pWacoI/AAAAAAAAAGo/Gw5seUEl1p0/s1600-h/N100.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_BoRubwevXAo/SGxA_pWacoI/AAAAAAAAAGo/Gw5seUEl1p0/s320/N100.gif" alt="" id="BLOGGER_PHOTO_ID_5218617530391360130" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;F=5&lt;br /&gt;N=100&lt;br /&gt;Detected F=5&lt;br /&gt;Max F=25&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/_BoRubwevXAo/SGwseOH_ENI/AAAAAAAAAGI/hzjRDqkOsNc/s1600-h/dft.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_BoRubwevXAo/SGwseOH_ENI/AAAAAAAAAGI/hzjRDqkOsNc/s320/dft.gif" alt="" id="BLOGGER_PHOTO_ID_5218594965914849490" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;F=5&lt;br /&gt;N=256&lt;br /&gt;Detected F=5&lt;br /&gt;Max F=80&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;As indicated by the Nyquist Theorem, decreasing the sampling interval (dt) increases the maximum frequency that could be detected by the FT. This widens the frequency range that could be detected which is appropriate for signals that contain higher frequencies. Below are plots of decreasing dt. We decreased dt by increasing N (since dt=T/N).&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BoRubwevXAo/SGxA_pWacoI/AAAAAAAAAGo/Gw5seUEl1p0/s1600-h/N100.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_BoRubwevXAo/SGxA_pWacoI/AAAAAAAAAGo/Gw5seUEl1p0/s320/N100.gif" alt="" id="BLOGGER_PHOTO_ID_5218617530391360130" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;dt=.02&lt;br /&gt;Max F=25&lt;br /&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://1.bp.blogspot.com/_BoRubwevXAo/SGxCUUUV7qI/AAAAAAAAAHA/M7S36CTG8sQ/s1600-h/N400-2.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_BoRubwevXAo/SGxCUUUV7qI/AAAAAAAAAHA/M7S36CTG8sQ/s320/N400-2.gif" alt="" id="BLOGGER_PHOTO_ID_5218618985034411682" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;dt=.005&lt;br /&gt;Max F=100&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Since dt x N=T, increasing N with T fixed decreases dt. This results to a smaller sampling interval and thus, increasing its detection range to higher frequencies without aliasing. Below are plots of increasing N. We could see that the maximum F increases.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_BoRubwevXAo/SGwseOH_ENI/AAAAAAAAAGI/hzjRDqkOsNc/s1600-h/dft.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_BoRubwevXAo/SGwseOH_ENI/AAAAAAAAAGI/hzjRDqkOsNc/s320/dft.gif" alt="" id="BLOGGER_PHOTO_ID_5218594965914849490" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;N=256&lt;br /&gt; Max F=80&lt;br /&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://1.bp.blogspot.com/_BoRubwevXAo/SGxCUUUV7qI/AAAAAAAAAHA/M7S36CTG8sQ/s1600-h/N400-2.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_BoRubwevXAo/SGxCUUUV7qI/AAAAAAAAAHA/M7S36CTG8sQ/s320/N400-2.gif" alt="" id="BLOGGER_PHOTO_ID_5218618985034411682" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;N=400&lt;br /&gt;  Max F=80&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The analysis above are consistent with the results of the simulations. I want to give myself a 10.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1337006332369536377-3723239858746280901?l=iasmark.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iasmark.blogspot.com/feeds/3723239858746280901/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1337006332369536377&amp;postID=3723239858746280901' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1337006332369536377/posts/default/3723239858746280901'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1337006332369536377/posts/default/3723239858746280901'/><link rel='alternate' type='text/html' href='http://iasmark.blogspot.com/2008/07/on-physical-measurements-from-discrete.html' title='..on physical measurements from discrete fourier transforms'/><author><name>iasmark</name><uri>http://www.blogger.com/profile/10465687830029106741</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/_BoRubwevXAo/SGwnaWxdOSI/AAAAAAAAAF4/oRsNEkzOcq0/s72-c/dft+equation.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1337006332369536377.post-1407757065949499305</id><published>2008-06-30T19:01:00.000-07:00</published><updated>2008-12-12T23:42:19.690-08:00</updated><title type='text'>..on enhancement by histogram manipulation</title><content type='html'>Below is sample image w/ poor contrast.  Our goal is to enhance the image by manipulating its histogram.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BoRubwevXAo/SGmQ0_sxW9I/AAAAAAAAADk/H4jRfI9ROPo/s1600-h/rose.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_BoRubwevXAo/SGmQ0_sxW9I/AAAAAAAAADk/H4jRfI9ROPo/s320/rose.jpg" alt="" id="BLOGGER_PHOTO_ID_5217860883412245458" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;www.flickr.com&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Original Image&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The image was first converted into gray scale. Below is the corresponding probability distribution function(PDF) and the commulative distribution function (CDF) of image.&lt;span style="text-decoration: underline;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BoRubwevXAo/SGmSyGZwI4I/AAAAAAAAADs/A2ZMQJs41DY/s1600-h/pdfrose.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 292px; height: 225px;" src="http://4.bp.blogspot.com/_BoRubwevXAo/SGmSyGZwI4I/AAAAAAAAADs/A2ZMQJs41DY/s320/pdfrose.gif" alt="" id="BLOGGER_PHOTO_ID_5217863032695169922" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Original PDF&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BoRubwevXAo/SGmUedszg0I/AAAAAAAAAEM/V6_pqqao110/s1600-h/cdfrose.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 294px; height: 219px;" src="http://4.bp.blogspot.com/_BoRubwevXAo/SGmUedszg0I/AAAAAAAAAEM/V6_pqqao110/s320/cdfrose.gif" alt="" id="BLOGGER_PHOTO_ID_5217864894374970178" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;                    Original CDF&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;We now enhance the image by manipulating the original CDF. We do this by getting the  T(r) of the CDF corresponding to the value of the pixel. The corresponding T(r) would be the new value of that pixel. We do this for every pixel of the original image. Below are the resulting enhanced images and their corresponding PDF and CDF. The resulting PDF is more "spread" than the original PDF. Also, The resulting CDF is now linear. We could observe that the contrast of the image was improved. The image of the rose petal becomes more distinct.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BoRubwevXAo/SGmYUAszoLI/AAAAAAAAAEs/KnkSvFJg1VM/s1600-h/pdfroser.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 285px; height: 215px;" src="http://3.bp.blogspot.com/_BoRubwevXAo/SGmYUAszoLI/AAAAAAAAAEs/KnkSvFJg1VM/s320/pdfroser.gif" alt="" id="BLOGGER_PHOTO_ID_5217869112838168754" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Resulting PDF&lt;br /&gt;&lt;br /&gt;&lt;br /&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/_BoRubwevXAo/SGmT9HTem7I/AAAAAAAAAEE/Z9LtWTzlsxA/s1600-h/cdfroser.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 290px; height: 219px;" src="http://2.bp.blogspot.com/_BoRubwevXAo/SGmT9HTem7I/AAAAAAAAAEE/Z9LtWTzlsxA/s320/cdfroser.gif" alt="" id="BLOGGER_PHOTO_ID_5217864321427479474" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;                                           &lt;br /&gt;&lt;br /&gt;Resulting CDF&lt;br /&gt;&lt;br /&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://4.bp.blogspot.com/_BoRubwevXAo/SGnXD3iZ1lI/AAAAAAAAAFs/d0GzKjp1T3c/s1600-h/resultrose.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_BoRubwevXAo/SGnXD3iZ1lI/AAAAAAAAAFs/d0GzKjp1T3c/s320/resultrose.jpg" alt="" id="BLOGGER_PHOTO_ID_5217938104733259346" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Resulting Image&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;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Another Technique&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;We now apply another technique. In this method, we manipulate the CDF of the original image by "mapping" it on the desired CDF (G(z)). Specifically,   we do this by getting the  T(r) of the original CDF corresponding to the value of the pixel. We then map T(r) into G(z) and find the corresponding z. Below is an illustration of the "mapping".&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BoRubwevXAo/SGmV94UoiOI/AAAAAAAAAEU/WRirIN0tt-I/s1600-h/illus.bmp"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_BoRubwevXAo/SGmV94UoiOI/AAAAAAAAAEU/WRirIN0tt-I/s320/illus.bmp" alt="" id="BLOGGER_PHOTO_ID_5217866533608917218" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;We use G(z)=sqrt(z). Below is the original image and the resulting image with the corresponding CDF.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_BoRubwevXAo/SGnQ-oYEoQI/AAAAAAAAAFE/PC-9XXyCFpE/s1600-h/xrayn1.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 183px; height: 179px;" src="http://2.bp.blogspot.com/_BoRubwevXAo/SGnQ-oYEoQI/AAAAAAAAAFE/PC-9XXyCFpE/s320/xrayn1.jpg" alt="" id="BLOGGER_PHOTO_ID_5217931417694281986" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Original Image&lt;br /&gt;&lt;span style="font-family:arial,sans-serif;font-size:-1;"&gt;&lt;span style="color:#008000;"&gt;theterroristsdictionary.blogspot.com&lt;/span&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;br /&gt;&lt;br /&gt;        &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BoRubwevXAo/SGnRf5D0OLI/AAAAAAAAAFU/XEGWc6lidJA/s1600-h/cdfn.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 257px; height: 193px;" src="http://3.bp.blogspot.com/_BoRubwevXAo/SGnRf5D0OLI/AAAAAAAAAFU/XEGWc6lidJA/s320/cdfn.gif" alt="" id="BLOGGER_PHOTO_ID_5217931989108406450" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;              Original CDF&lt;br /&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://3.bp.blogspot.com/_BoRubwevXAo/SGnRUkTx_qI/AAAAAAAAAFM/pgDufkp-d94/s1600-h/xy.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 223px; height: 169px;" src="http://3.bp.blogspot.com/_BoRubwevXAo/SGnRUkTx_qI/AAAAAAAAAFM/pgDufkp-d94/s320/xy.gif" alt="" id="BLOGGER_PHOTO_ID_5217931794559663778" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Desired CDF (G(z)=sqrt(z))&lt;br /&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/_BoRubwevXAo/SGnR4513ACI/AAAAAAAAAFc/V8uApEo9CkI/s1600-h/res2.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 173px; height: 169px;" src="http://2.bp.blogspot.com/_BoRubwevXAo/SGnR4513ACI/AAAAAAAAAFc/V8uApEo9CkI/s320/res2.jpg" alt="" id="BLOGGER_PHOTO_ID_5217932418815033378" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Resulting Image&lt;br /&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://4.bp.blogspot.com/_BoRubwevXAo/SGnSDXeXuXI/AAAAAAAAAFk/_0T3xhDbaC0/s1600-h/cdfnr.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 250px; height: 188px;" src="http://4.bp.blogspot.com/_BoRubwevXAo/SGnSDXeXuXI/AAAAAAAAAFk/_0T3xhDbaC0/s320/cdfnr.gif" alt="" id="BLOGGER_PHOTO_ID_5217932598568270194" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;           Resulting CDF&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The resulting CDF is verry much like the desired CDF. And we could see that the contrast of the resulting image is enhanced.&lt;br /&gt;&lt;br /&gt;I want to give myself a 10. I have done the activity successfully.&lt;br /&gt;&lt;br /&gt;Acknowledgment to Julie and Ed for the help.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1337006332369536377-1407757065949499305?l=iasmark.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iasmark.blogspot.com/feeds/1407757065949499305/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1337006332369536377&amp;postID=1407757065949499305' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1337006332369536377/posts/default/1407757065949499305'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1337006332369536377/posts/default/1407757065949499305'/><link rel='alternate' type='text/html' href='http://iasmark.blogspot.com/2008/06/on-enhancement-by-histogram.html' title='..on enhancement by histogram manipulation'/><author><name>iasmark</name><uri>http://www.blogger.com/profile/10465687830029106741</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/_BoRubwevXAo/SGmQ0_sxW9I/AAAAAAAAADk/H4jRfI9ROPo/s72-c/rose.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1337006332369536377.post-7497250246316662496</id><published>2008-06-23T18:06:00.000-07:00</published><updated>2008-12-12T23:42:22.001-08:00</updated><title type='text'>..on image types and basic enhancement</title><content type='html'>Below are the different types of images of Albert Einstein (binary, gray scale, true color, and indexed).  Also shown are the properties of each image which was derived using imfinfo of scilab: "imfinfo("imagefilname",'verbose') ".&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Binary&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BoRubwevXAo/SGBpXVwlIYI/AAAAAAAAACA/BboTzh9lEz4/s1600-h/b.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 117px; height: 145px;" src="http://1.bp.blogspot.com/_BoRubwevXAo/SGBpXVwlIYI/AAAAAAAAACA/BboTzh9lEz4/s320/b.jpg" alt="" id="BLOGGER_PHOTO_ID_5215284218193846658" border="0" /&gt;&lt;/a&gt;&lt;span style="color: rgb(102, 51, 255);font-size:85%;" &gt; FileSize: 3971&lt;br /&gt;Format: JPEG&lt;br /&gt;Width: 118&lt;br /&gt;Height: 145&lt;br /&gt;Depth: 8&lt;br /&gt;StorageType: indexed&lt;br /&gt;NumberOfColors: 256&lt;br /&gt;ResolutionUnit: inch&lt;br /&gt;XResolution: 72.000000&lt;br /&gt;YResolution: 72.000000&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;www.flickr.com&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Gray Scale&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BoRubwevXAo/SGBdgfMpBhI/AAAAAAAAABw/5sck_ntrsT4/s1600-h/gs.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_BoRubwevXAo/SGBdgfMpBhI/AAAAAAAAABw/5sck_ntrsT4/s320/gs.jpg" alt="" id="BLOGGER_PHOTO_ID_5215271181206750738" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(102, 51, 255);"&gt; FileSize: 3621&lt;/span&gt; &lt;span style="color: rgb(102, 51, 255);"&gt;&lt;br /&gt;Format: JPEG&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);"&gt; Width: 109&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);"&gt;Height: 150&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);"&gt; Depth: 8&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 51, 255);"&gt;StorageType: indexed&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);"&gt;NumberOfColors: 256&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);"&gt;ResolutionUnit: inch&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);"&gt;XResolution: 72.000000&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);"&gt;YResolution: 72.000000&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;www.newz.dk&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;True Color&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BoRubwevXAo/SGHuqK3BkSI/AAAAAAAAACI/yJEUZv95uxU/s1600-h/eincolor.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 168px; height: 142px;" src="http://1.bp.blogspot.com/_BoRubwevXAo/SGHuqK3BkSI/AAAAAAAAACI/yJEUZv95uxU/s320/eincolor.jpg" alt="" id="BLOGGER_PHOTO_ID_5215712251708805410" border="0" /&gt;&lt;/a&gt;&lt;span style="color: rgb(102, 51, 255);font-size:85%;" &gt; FileSize: 5236&lt;br /&gt;Format: JPEG&lt;br /&gt;Width: 145&lt;br /&gt;Height: 122&lt;br /&gt;Depth: 8&lt;br /&gt;StorageType: truecolor&lt;br /&gt;NumberOfColors: 0&lt;br /&gt;ResolutionUnit: centimeter&lt;br /&gt;XResolution: 72.000000&lt;br /&gt;YResolution: 72.000000 &lt;/span&gt;&lt;br /&gt;www.flickr.com&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Indexed(Portable Network Graphics)&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BoRubwevXAo/SGHwc4kKjkI/AAAAAAAAACQ/ucINNy3tPTM/s1600-h/.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 153px; height: 134px;" src="http://1.bp.blogspot.com/_BoRubwevXAo/SGHwc4kKjkI/AAAAAAAAACQ/ucINNy3tPTM/s320/.png" alt="" id="BLOGGER_PHOTO_ID_5215714222482820674" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(102, 51, 255);"&gt; FileSize: 2938&lt;/span&gt; &lt;span style="color: rgb(102, 51, 255);"&gt;Format:&lt;br /&gt;JPEG&lt;/span&gt; &lt;span style="color: rgb(102, 51, 255);"&gt;Width: 130&lt;br /&gt;&lt;/span&gt; &lt;span style="color: rgb(102, 51, 255);"&gt;Height: 113&lt;/span&gt; &lt;span style="color: rgb(102, 51, 255);"&gt;&lt;br /&gt;Depth: 8&lt;/span&gt; &lt;span style="color: rgb(102, 51, 255);"&gt;&lt;br /&gt;StorageType: truecolor&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);"&gt;NumberOfColors: 0&lt;/span&gt; &lt;span style="color: rgb(102, 51, 255);"&gt;&lt;br /&gt;ResolutionUnit: centimeter&lt;/span&gt; &lt;span style="color: rgb(102, 51, 255);"&gt;&lt;br /&gt;XResolution: 72.000000&lt;/span&gt; &lt;span style="color: rgb(102, 51, 255);"&gt;&lt;br /&gt;YResolution: 72.000000 &lt;/span&gt;&lt;br /&gt;&lt;/span&gt;us.geocities.com&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Measuring the size of an image&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Here is a scanned image of the ace of diamond card. The ruler serves as a reference measurement for the size of a pixel (1mm=13pixels or .005917sq. mm/pixel).&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_BoRubwevXAo/SGH1rSORXbI/AAAAAAAAACg/nVhsmhNLMb0/s1600-h/ace_diamond.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_BoRubwevXAo/SGH1rSORXbI/AAAAAAAAACg/nVhsmhNLMb0/s320/ace_diamond.jpg" alt="" id="BLOGGER_PHOTO_ID_5215719967446621618" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Below are the images of the center diamond (true color, gray scale, and binary) and  the corresponding properties. To convert the image to binary,  the  histogram of the gray scale image was analyze (see plot below). We could see a clear separation at around 220. This was used as the threshold.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;True Color&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BoRubwevXAo/SGH2_IKoc0I/AAAAAAAAACo/G6xPAoIxR80/s1600-h/diamond.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 136px; height: 178px;" src="http://4.bp.blogspot.com/_BoRubwevXAo/SGH2_IKoc0I/AAAAAAAAACo/G6xPAoIxR80/s320/diamond.jpg" alt="" id="BLOGGER_PHOTO_ID_5215721407856014146" border="0" /&gt;&lt;/a&gt;&lt;span style="color: rgb(102, 51, 255);font-size:85%;" &gt;FileSize: 3549&lt;br /&gt;  Format: JPEG&lt;br /&gt;   Width: 160&lt;br /&gt;  Height: 211&lt;br /&gt;   Depth: 8&lt;br /&gt;StorageType: truecolor&lt;br /&gt;NumberOfColors: 0&lt;br /&gt;ResolutionUnit: inch&lt;br /&gt;XResolution: 96.000000&lt;br /&gt;YResolution: 96.000000&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Gray Scale&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_BoRubwevXAo/SGH4aOhasSI/AAAAAAAAAC4/bea7B1K_ruQ/s1600-h/coingy.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 128px; height: 167px;" src="http://2.bp.blogspot.com/_BoRubwevXAo/SGH4aOhasSI/AAAAAAAAAC4/bea7B1K_ruQ/s320/coingy.jpg" alt="" id="BLOGGER_PHOTO_ID_5215722972930289954" border="0" /&gt;&lt;/a&gt;&lt;span style="color: rgb(102, 51, 255);font-size:85%;" &gt; FileSize: 2466&lt;br /&gt;   Format: JPEG&lt;br /&gt;    Width: 160&lt;br /&gt;   Height: 211&lt;br /&gt;    Depth: 8&lt;br /&gt;StorageType: indexed&lt;br /&gt;NumberOfColors: 256&lt;br /&gt;ResolutionUnit: inch&lt;br /&gt;XResolution: 72.000000&lt;br /&gt;YResolution: 72.000000 &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Binary&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_BoRubwevXAo/SGH5A-qvDaI/AAAAAAAAADA/e7fBLdjQm84/s1600-h/coinbw.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 131px; height: 173px;" src="http://2.bp.blogspot.com/_BoRubwevXAo/SGH5A-qvDaI/AAAAAAAAADA/e7fBLdjQm84/s320/coinbw.jpg" alt="" id="BLOGGER_PHOTO_ID_5215723638689303970" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-size:85%;" &gt; FileSize: 2584&lt;br /&gt;    Format: JPEG&lt;br /&gt;     Width: 160&lt;br /&gt;    Height: 211&lt;br /&gt;     Depth: 8&lt;br /&gt;StorageType: indexed&lt;br /&gt;NumberOfColors: 256&lt;br /&gt;ResolutionUnit: inch&lt;br /&gt;XResolution: 72.000000&lt;br /&gt;YResolution: 72.000000&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Histogram Plot&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BoRubwevXAo/SGH7YtcJrfI/AAAAAAAAADI/0aIKmELHJXQ/s1600-h/plot.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_BoRubwevXAo/SGH7YtcJrfI/AAAAAAAAADI/0aIKmELHJXQ/s320/plot.gif" alt="" id="BLOGGER_PHOTO_ID_5215726245404847602" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Finally, we measure the area of the diamond. We use the technique from the previous activity utilizing the follow command of scilab and the Green's Theorem. But before this, the image have to be inverted.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Inverted Image&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_BoRubwevXAo/SGLoOTxY2wI/AAAAAAAAADQ/P7DSGFyD7Hc/s1600-h/inv.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 125px; height: 164px;" src="http://2.bp.blogspot.com/_BoRubwevXAo/SGLoOTxY2wI/AAAAAAAAADQ/P7DSGFyD7Hc/s320/inv.jpg" alt="" id="BLOGGER_PHOTO_ID_5215986650971691778" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The measured area is 10265 pixels. Using the conversion factor(.005917 sq. mm/pixel), the measured area is 60.74 sq. mm. The analytic area (using pixel counting) is 10464 pixels or 61.92 sq. mm. The percent error is just 1.9%.&lt;br /&gt;&lt;br /&gt;I want to give myself a 10 since I was able to successfully finish the task .&lt;br /&gt;&lt;br /&gt;Acknowledgment to Lei for the scanned images, Jeric and Ed for their help with Scilab code.&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1337006332369536377-7497250246316662496?l=iasmark.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iasmark.blogspot.com/feeds/7497250246316662496/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1337006332369536377&amp;postID=7497250246316662496' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1337006332369536377/posts/default/7497250246316662496'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1337006332369536377/posts/default/7497250246316662496'/><link rel='alternate' type='text/html' href='http://iasmark.blogspot.com/2008/06/on-image-types-and-basic-enhancement.html' title='..on image types and basic enhancement'/><author><name>iasmark</name><uri>http://www.blogger.com/profile/10465687830029106741</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/_BoRubwevXAo/SGBpXVwlIYI/AAAAAAAAACA/BboTzh9lEz4/s72-c/b.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1337006332369536377.post-6561891805689466442</id><published>2008-06-18T19:30:00.000-07:00</published><updated>2008-12-12T23:42:22.996-08:00</updated><title type='text'>..on measuring area</title><content type='html'>Below are some regular geometric shapes. Using Green's Theorem, the white areas were measured. This was done by utilizing Scilab's contour follower command (provided by the Sip toolbox library).&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BoRubwevXAo/SFnGBQHsLOI/AAAAAAAAAAk/P440CneLDLA/s1600-h/rectangle.bmp"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_BoRubwevXAo/SFnGBQHsLOI/AAAAAAAAAAk/P440CneLDLA/s320/rectangle.bmp" alt="" id="BLOGGER_PHOTO_ID_5213415768467451106" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Rectangle&lt;br /&gt;  obtained area: 18387&lt;br /&gt;  analytic area: 18696&lt;br /&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://1.bp.blogspot.com/_BoRubwevXAo/SFnGYGLRVPI/AAAAAAAAAAs/94Xhw4Dop28/s1600-h/circle.bmp"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_BoRubwevXAo/SFnGYGLRVPI/AAAAAAAAAAs/94Xhw4Dop28/s320/circle.bmp" alt="" id="BLOGGER_PHOTO_ID_5213416160935105778" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Circle&lt;br /&gt;  obtained area: 34636&lt;br /&gt;  analytic area: 33944&lt;br /&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://3.bp.blogspot.com/_BoRubwevXAo/SFnGfnPJ1gI/AAAAAAAAAA0/SbVDvgNRkws/s1600-h/square.bmp"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_BoRubwevXAo/SFnGfnPJ1gI/AAAAAAAAAA0/SbVDvgNRkws/s320/square.bmp" alt="" id="BLOGGER_PHOTO_ID_5213416290068846082" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Square&lt;br /&gt;  obtained area: 41818&lt;br /&gt;  analytic area: 42228&lt;br /&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/_BoRubwevXAo/SFnH_y431rI/AAAAAAAAAA8/v_SiYTQ2oXI/s1600-h/GreensThm.bmp"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_BoRubwevXAo/SFnH_y431rI/AAAAAAAAAA8/v_SiYTQ2oXI/s320/GreensThm.bmp" alt="" id="BLOGGER_PHOTO_ID_5213417942464059058" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Green's Theorem&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;For the rectangle, the percent deviation from the analytic area is 1.65%. For the circle it is 1.89%, and 0.97%  for the square. These values are well below 5% acceptance threshold. The technique is accurate enough.&lt;br /&gt;&lt;br /&gt;I want to give mysef a 10. I was successful in implementing the technique.&lt;br /&gt;&lt;br /&gt;Thanks to Rica and Ed for the help with the Sip toolbox.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1337006332369536377-6561891805689466442?l=iasmark.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iasmark.blogspot.com/feeds/6561891805689466442/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1337006332369536377&amp;postID=6561891805689466442' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1337006332369536377/posts/default/6561891805689466442'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1337006332369536377/posts/default/6561891805689466442'/><link rel='alternate' type='text/html' href='http://iasmark.blogspot.com/2008/06/on-measuring-area.html' title='..on measuring area'/><author><name>iasmark</name><uri>http://www.blogger.com/profile/10465687830029106741</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/_BoRubwevXAo/SFnGBQHsLOI/AAAAAAAAAAk/P440CneLDLA/s72-c/rectangle.bmp' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1337006332369536377.post-5843537402384811541</id><published>2008-06-11T19:42:00.000-07:00</published><updated>2008-12-12T23:42:23.642-08:00</updated><title type='text'>.. on digital scanning</title><content type='html'>This hand-drawn plot was obtained from the paper Some Dynamic Applications of Liquid Manometrs (American Journal of Physics, 1935).&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_BoRubwevXAo/SFCPOL0T5uI/AAAAAAAAAAc/_H75SMGgEMU/s1600-h/mark3.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_BoRubwevXAo/SFCPOL0T5uI/AAAAAAAAAAc/_H75SMGgEMU/s320/mark3.JPG" alt="" id="BLOGGER_PHOTO_ID_5210822242720802530" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;After scanning the image in grayscale, Paint was used to determine the locations of the points on the curve and replot them in MS Excel. To get the exact values for the curve, the ratio of the number of pixels per unit (x and y axis) was incorporated. Below is the superimposed plot of the original and the reconstructed.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BoRubwevXAo/SFCNeb0T5sI/AAAAAAAAAAM/rMYsrpd1S6g/s1600-h/mark2.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_BoRubwevXAo/SFCNeb0T5sI/AAAAAAAAAAM/rMYsrpd1S6g/s320/mark2.JPG" alt="" id="BLOGGER_PHOTO_ID_5210820322870421186" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Since I was able to accurately reconstruct the plot, i want to give myself a 10. Also, i get the bonus point for overlaying the two plots.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1337006332369536377-5843537402384811541?l=iasmark.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iasmark.blogspot.com/feeds/5843537402384811541/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1337006332369536377&amp;postID=5843537402384811541' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1337006332369536377/posts/default/5843537402384811541'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1337006332369536377/posts/default/5843537402384811541'/><link rel='alternate' type='text/html' href='http://iasmark.blogspot.com/2008/06/activity-1-digital-scanning.html' title='.. on digital scanning'/><author><name>iasmark</name><uri>http://www.blogger.com/profile/10465687830029106741</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/_BoRubwevXAo/SFCPOL0T5uI/AAAAAAAAAAc/_H75SMGgEMU/s72-c/mark3.JPG' height='72' width='72'/><thr:total>1</thr:total></entry></feed>
