Image analysis

3 次查看(过去 30 天)
harjan
harjan 2011-10-1
Hello Sir,
I have one doubt regarding for loop.I have 256x256 image then after some operations performed, it would produce 32x32 size output(that means by analysing 8x8 values it will show a singular value 1) How it could be done?Can i try it with mat2cell? But i need some information about mat2cell in depth Please post your suggetions.
My sample code
im=imread('flower.png') %256x256 image
for x=1:8
for y=1:8
im1(x,y)=im(x,y)*cos(0)+im(x,y)*sin(0);
end
end
My question is how to iterate this loop upto 256 values?
  8 个评论
Walter Roberson
Walter Roberson 2011-10-4
You appear to already have a solid foundation for the code to find the moments for a single 8x8 block, in your previous question http://www.mathworks.com/matlabcentral/answers/15798-image-processing
harjan
harjan 2011-10-7
Ok sir, I apply your idea to my project and how to pass the 256x256 to that function?
My coding:
image=imread('D:\Jana\images\jann.jpg') %256x256 image
s=moment(image);
function s = moment(image)
%UNTITLED Summary of this function goes here
% Detailed explanation goes here
ima=double(image);
for i=1:8
for j=1:8
ui(i,j)=i*cos(90)+j*sin(90);
uib(i,j)=ui(i,j)*ima(i,j);
end
end
end
please help to modify this sir......

请先登录,再进行评论。

回答(2 个)

Walter Roberson
Walter Roberson 2011-10-3
newim = blkproc(im, [8 8], @(b) sum(double(b(:))) );
  2 个评论
harjan
harjan 2011-10-3
Can you please explain this formula Sir,
i know somewhat about blkproc but still i dont know what is @b indicates......
Walter Roberson
Walter Roberson 2011-10-3
Read the documentation for "function" to see what @(b) indicates.

请先登录,再进行评论。


Walter Roberson
Walter Roberson 2011-10-7
image=imread('D:\Jana\images\jann.jpg') %256x256 image
s = blkproc(image, [8 8], @moment);
Warning: your code with cos(90) and sin(90) is very very unlikely to work. Your current version is worse that way than when we asked you before why you had the cos() and sin() in the equations, which is a question I do not recall that you ever answered.
  2 个评论
Image Analyst
Image Analyst 2011-10-7
And it appears jana does not yet know that there is a cosd() and sind() which should be used when inputting values in degrees instead of radians. (Not that they should even be in there in the first place!)
harjan
harjan 2011-10-8
Oh sorry sir I know about sind and cosd.By mistake i forget to put sind instead of sin.Now my problem is to find the moment along x axis and y axis for that purpose i include sin and cosine terms into my code(to find in which axis the moment is maximum.Thus we can identify the orientation)So how to code this.....Provide your guidance...Thanks in advance..

请先登录,再进行评论。

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by