<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/168670</link>
    <title>MATLAB Central Newsreader - Angle between Pixels of an image</title>
    <description>Feed for thread: Angle between Pixels of an image</description>
    <language>en-us</language>
    <copyright>&amp;copy;1994-2012 by MathWorks, Inc.</copyright>
    <webmaster>webmaster@mathworks.com</webmaster>
    <generator>MATLAB Central Newsreader</generator>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <ttl>60</ttl>
    <image>
      <title>MathWorks</title>
      <url>http://www.mathworks.com/images/membrane_icon.gif</url>
    </image>
    <item>
      <pubDate>Sat, 03 May 2008 16:08:02 -0400</pubDate>
      <title>Angle between Pixels of an image</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/168670#430082</link>
      <author>zaheer ahmad</author>
      <description>&lt;br&gt;
I am working on Cursive ( Urdu/Arabic )Optical character&lt;br&gt;
Recognition (OCR )System. i need to find out the flow of&lt;br&gt;
pixels or angle between pixels (i.e. angle between pixel1&lt;br&gt;
and pixel5)&lt;br&gt;
is it possible using any existing filters in matlab. if yes&lt;br&gt;
which filter and where to find help regarding the filter.&lt;br&gt;
the image is of binary type.&lt;br&gt;
Presently i am scanning the image for black pixels, storing&lt;br&gt;
the pixels location then using ' atan2 ' find the angle.&lt;br&gt;
the complete code is as below:&lt;br&gt;
&lt;br&gt;
clear&lt;br&gt;
clc&lt;br&gt;
Img=im2bw(imread('SingleWord.bmp'));&lt;br&gt;
imshow(Img);hold on; axis manual;&lt;br&gt;
[Ymax, Xmax] = size(Img);&lt;br&gt;
&lt;br&gt;
points=[22,22];&lt;br&gt;
xx=0;yy=0;&lt;br&gt;
for y=Ymax:-1:1&lt;br&gt;
for x=Xmax:-1:1&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if Img(y,x)==0&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;plot(x,y,'Color','r','LineWidth', 0.5,'Marker','.');&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xx=xx+1;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;yy=yy+1;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;points(xx,yy)=x;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;points(xx+1,yy)=y;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;break;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end&lt;br&gt;
end&lt;br&gt;
end&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
for i=1:25&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for j=1:25&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;
PA=atan2((points(i,j+1)-points(i+1,j+1)),((points(i,j+1)-points(i,j))))&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end&lt;br&gt;
end&lt;br&gt;
&lt;br&gt;
It gives me a list of angles as expected but with errors.&lt;br&gt;
the code is given here for explaining my aim and  to make it&lt;br&gt;
sure you follow me.&lt;br&gt;
thanks in advance.</description>
    </item>
    <item>
      <pubDate>Sat, 03 May 2008 20:36:03 -0400</pubDate>
      <title>Re: Angle between Pixels of an image</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/168670#430101</link>
      <author>Roger Stafford</author>
      <description>&quot;zaheer ahmad&quot; &amp;lt;ahmad.zaheer@yahoo.com&amp;gt; wrote in message &amp;lt;fvi2l2$21r&lt;br&gt;
$1@fred.mathworks.com&amp;gt;...&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; I am working on Cursive ( Urdu/Arabic )Optical character&lt;br&gt;
&amp;gt; Recognition (OCR )System. i need to find out the flow of&lt;br&gt;
&amp;gt; pixels or angle between pixels (i.e. angle between pixel1&lt;br&gt;
&amp;gt; and pixel5)&lt;br&gt;
&amp;gt; is it possible using any existing filters in matlab. if yes&lt;br&gt;
&amp;gt; which filter and where to find help regarding the filter.&lt;br&gt;
&amp;gt; the image is of binary type.&lt;br&gt;
&amp;gt; Presently i am scanning the image for black pixels, storing&lt;br&gt;
&amp;gt; the pixels location then using ' atan2 ' find the angle.&lt;br&gt;
&amp;gt; the complete code is as below:&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; clear&lt;br&gt;
&amp;gt; clc&lt;br&gt;
&amp;gt; Img=im2bw(imread('SingleWord.bmp'));&lt;br&gt;
&amp;gt; imshow(Img);hold on; axis manual;&lt;br&gt;
&amp;gt; [Ymax, Xmax] = size(Img);&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; points=[22,22];&lt;br&gt;
&amp;gt; xx=0;yy=0;&lt;br&gt;
&amp;gt; for y=Ymax:-1:1&lt;br&gt;
&amp;gt; for x=Xmax:-1:1&lt;br&gt;
&amp;gt;    &lt;br&gt;
&amp;gt;     if Img(y,x)==0&lt;br&gt;
&amp;gt;          plot(x,y,'Color','r','LineWidth', 0.5,'Marker','.');&lt;br&gt;
&amp;gt;          xx=xx+1;&lt;br&gt;
&amp;gt;          yy=yy+1;&lt;br&gt;
&amp;gt;          &lt;br&gt;
&amp;gt;          points(xx,yy)=x;&lt;br&gt;
&amp;gt;          points(xx+1,yy)=y;&lt;br&gt;
&amp;gt;           &lt;br&gt;
&amp;gt;          break;&lt;br&gt;
&amp;gt;     end&lt;br&gt;
&amp;gt; end&lt;br&gt;
&amp;gt; end&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; for i=1:25&lt;br&gt;
&amp;gt;     for j=1:25&lt;br&gt;
&amp;gt;        &lt;br&gt;
&amp;gt; PA=atan2((points(i,j+1)-points(i+1,j+1)),((points(i,j+1)-points(i,j))))&lt;br&gt;
&amp;gt;     end&lt;br&gt;
&amp;gt; end&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; It gives me a list of angles as expected but with errors.&lt;br&gt;
&amp;gt; the code is given here for explaining my aim and  to make it&lt;br&gt;
&amp;gt; sure you follow me.&lt;br&gt;
&amp;gt; thanks in advance.&lt;br&gt;
-------&lt;br&gt;
&amp;nbsp;&amp;nbsp;Could you please describe in words, fully, carefully and precisely, what the &lt;br&gt;
array 'points' is meant to contain and how large a size it is intended to &lt;br&gt;
expand to?  As it stands, it seems to be an array that you are filling in only &lt;br&gt;
along two diagonals and thereby leaving it with mostly zeros.  These zeros &lt;br&gt;
will cause you grief later when you call on 'atan2' with numerous cases of &lt;br&gt;
atan2(0,0), which will produce irate error messages.&lt;br&gt;
&lt;br&gt;
Roger Stafford</description>
    </item>
  </channel>
</rss>

