Lets Learn together... Happy Reading

" Two roads diverged in a wood, and I,
I took the one less traveled by,
And that has made all the difference "-Robert Frost

Oil Painting in MATLAB

To obtain a painting-like effect , define a small window matrix of size m by n. Copy the original image pixel values into the matrix and find the histogram of each value. Find the maximum occurring pixel value and replace the current position with the maximum occurrence value.

Original Image

Oil Paint Effect

MATLAB CODE:
A=imread('aish.jpg');

%Define the matrix size of  your convience.
m=5;
n=6;
Image=uint8(zeros([size(A,1)-m,size(A,2)-n,3]));
%Calculate the histogram for each RGB value.
for v=1:3

for i=1:size(A,1)-m
    for j=1:size(A,2)-n
        mymask=A(i:i+m-1,j:j+n-1,v);
        h=zeros(1,256);
        for x=1:(m*n)
            h(mymask(x)+1)=h(mymask(x)+1)+1;
        end
  %Maximum occurring value and the position is obtained
        [maxvalue,pos]=max(h);
        Image(i,j,v)=pos-1;
    end
end
end
figure,imshow(Image);

SEE ALSO : Swirl effect  Cone effect    Glassy effect   Tiling effect   Paint application(coloring)
  Reference:
FOR FUN:  Create your own Photoshop effects
like button Like "IMAGE PROCESSING" page

Swirl effect in MATLAB

After reading a couple of image processing books, I tried to implement some Photoshop effects in MATLAB.  First, I tried to implement the twirl effect in MATLAB.


The mid point of the image is stored in the variables ‘midx’ and ‘midy’.
The angle and the radius for each point in the image are found by converting the co-ordinates from Cartesian to polar co-ordinates. 

 The effect can be obtained by using the following formula: 
new[rho , theta] = old[rho , theta + rho /K] .

By changing the value of K, the swirl can be increased or decreased.


For more fun, try this effect with your own photography image.

Additional Information: Learn to make your own Photoshop effects so that you can code your own effects.

For beginners in photoshop: Read photoshop for dummies .





MATLAB CODE:


A=imread('flower2.jpg');

B=uint8(zeros(size(A)));
figure,imshow(A);

%Mid point of the image
midx=ceil((size(A,1)+1)/2);
midy=ceil((size(A,2)+1)/2);
K=150
K=100;
x2=zeros([size(A,1) size(A,2)]);
y2=zeros([size(A,1) size(A,2)]);
for i=1:size(A,1)
    x=i-midx-K;
    for j=1:size(A,2)
%Cartesian to Polar co-ordinates
           [theta1,rho1]=cart2pol(x,j-midy+K);
     
       
               
        phi=theta1+(rho1/K);
       
%Polar to Cartesian co-ordinates
        [l,m]=pol2cart(phi,rho1);
        x2(i,j)=ceil(l)+midx;
        y2(i,j)=ceil(m)+midy;
       
    end
end
          
  %The result may produce value lesser than 1 or greater than the image size.


x2=max(x2,1);
x2=min(x2,size(A,1));

y2=max(y2,1);
y2=min(y2,size(A,2));
        
       
        for i=1:size(A,1)
            for j=1:size(A,2)
                B(i,j,:)=A(x2(i,j),y2(i,j),:);
            end
        end
       
     figure,   imshow(B);
K=100







     Reference:


FOR FUN:  Create your own Photoshop effects
like button Like "IMAGE PROCESSING" page

MATLAB Output Functions

The output to the screen using ‘displaymatlab function.

            To display the result with new line and more than 1 argument or variable, I used the cell format to display the variables.
In the first example, I used cell format to display the variables.  The special character ‘,’ is used as a concatenation operator and the ‘;’ is used as a new line character.

%Simple Example to demonstrate display function
length=10;
breadth=30.4;
shape=' rectangle';

area=length*breadth;

result={'Length =',length; 'Breadth =',breadth;'Shape:',shape; 'Area of the rectangle =',area};
display(result);



Here I converted the single line into a string and then used ‘;’ for a new line character.

%Lets make use strings here

result={strcat('length of the',shape,'= ',num2str(length)); strcat('Breadth of the',shape,'=',num2str(breadth)); strcat('Area of the',shape,'=',num2str(area))};
display(result);






%sprintf

result=sprintf('Length of the %s = %.2f \nBreadth of the %s = %.2f \nArea of the %s = %.2f',shape,length,shape,breadth,shape,area);
display(result);




Sprintf is used to format the text. It is similar to the ‘C’ function ‘printf’. For strings, ‘%s’ is used. For decimals,’%d’ is used.
And for new line same as in ‘C’ we use ‘\n’ here.

like button Like "IMAGE PROCESSING" page
Previous Post Next Post Home
Google ping Hypersmash.com