how to convolved two image ?

hi
i want to convolved 2 images.
i tried with conv2 but its not working.
i have 2 images one is Gaussian filterd image and other is sharped image. and i would like to convolved this 2 image. i write a code
im = imread('my original.jpg');
myfilter = fspecial('gaussian',[3 3], 0.5);
a = imfilter(image, myfilter);
b = imsharpen(image,'Radius',0.5);
c=conv2(a,b);
plz help me

 Accepted Answer

Image Analyst
Image Analyst on 13 Oct 2013
Edited: Image Analyst on 13 Oct 2013
You DON'T want to use image as the name of a variable - it's the name of a built in function. Plus you need to convert to double when you call the convolution.
grayImage = imread('Cameraman.tif');
grayImage = double(grayImage);
subplot(2,3,1);
imshow(grayImage, []);
axis on;
title('Original Image', 'FontSize', 15);
myfilter = fspecial('gaussian',[3 3], 0.5);
subplot(2,3,2);
imshow(myfilter, []);
axis on;
title('myFilter', 'FontSize', 15);
a = imfilter(grayImage, myfilter);
subplot(2,3,3);
imshow(a, []);
axis on;
title('a', 'FontSize', 15);
b = imsharpen(grayImage,'Radius',0.5);
subplot(2,3,4);
imshow(b, []);
axis on;
title('b', 'FontSize', 15);
c=conv2(a,b, 'full');
subplot(2,3,5);
imshow(c, []);
title('c', 'FontSize', 15);
axis on;

9 Comments

Why do you want to do this anyway - what does it mean? It doesn't make sense to me.
SAM
SAM on 13 Oct 2013
i would like to calculate the blurring effect...
That's what image "a" is. It makes no sense whatsoever to convolve a blurred full sized image with a sharpened full size image. It's basically meaningless.
SAM
SAM on 13 Oct 2013
Edited: SAM on 13 Oct 2013
Undefined function 'conv2' for input arguments of type 'double' and
attributes 'full 3d real'.
again same error...
Error in tryingf11_2 (line 18)
c=conv2(a,b, 'same');
SAM
SAM on 13 Oct 2013
To estimate the blurring effect in a painting,
to model the blurred image I b as the result of Gaussian smoothing filter Gσ applied on a hypothetic sharp image I s ,
i.e. I b =G σ ∗ I s .
The symbol ∗ here means convolution.
Here the parameter σ of Gaussian filter and the sharp image I s are both unknown. Assuming that the frequency distribution for I s is approximately the same, we have the parameter σ of Gaussian filter to represent the degree of blurring. By taking Fourier-Transform on I b , this method looks for the highest frequency whose power is greater than a certain threshold and assumed it inverse-proportioned to the smoothing parameter σ . If the highest frequency is small, it can be considered to be blurred by a largeσ . So the blurring feature is measured as:
Well that's fine, but that's not at all what you are doing.
Looks like your image, is 3D. Is it an RGB image, in that case use rgb2gray to convert it to grayscale:
im = double(rgb2gray(imread('my original.jpg')));
SAM
SAM on 14 Oct 2013
ya i got it
SAM
SAM on 14 Oct 2013
@image analyst
so what should i do?

Sign in to comment.

More Answers (3)

Matt J
Matt J on 13 Oct 2013
Edited: Matt J on 13 Oct 2013
You didn't show your error messages, so I'm just guessing, but this
im = imread('my original.jpg');
should probably be this
image = double(imread('my original.jpg'));

2 Comments

SAM
SAM on 13 Oct 2013
Undefined function 'conv2' for input arguments of type 'double' and
attributes 'full 3d real'.
again same error...
They both have to be gray scale images, not color. What does this say:
whos a whos b

Sign in to comment.

Taimoor Zafar
Taimoor Zafar on 19 Feb 2015
I need to convolve two jpg images by using conv2 command but it's not working . Images are attached.
I am new to this field.
Plz help me
Mahfuj
Mahfuj on 4 Nov 2015
The code works fine. But how we can reconstruct two images from the convolved image ?

1 Comment

You'd have to know one of them, and then use an "inverse filter".

Sign in to comment.

Asked:

SAM
on 13 Oct 2013

Commented:

on 4 Nov 2015

Community Treasure Hunt

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

Start Hunting!