I have tried to reconstruct a image using Motion Compensation technique. When i try to compare the image with SSIM i get an error like this.
2 次查看(过去 30 天)
显示 更早的评论
??? Error using ==> ne Matrix dimensions must agree.
Error in ==> ssim at 84 if (size(img1) ~= size(img2))
Error in ==> MCpredict_Full at 92 [mssim, ssim_map] = ssim(img1, img2);
采纳的回答
Image Analyst
2014-6-14
Probably one image is color (3D) and the other is monochrome (2D). Simply type out the size array before you compare. It's best to do something like this:
[rows1, columns1, numberOfColorChannels1] = size(img1)
[rows2, columns2, numberOfColorChannels2] = size(img2)
if rows1~=rows2 || columns1~=columns2
% Warn user that sizes don't match......
You might have to also check on the number of color channels, depending on what operations you want to do.
2 个评论
Image Analyst
2014-6-16
jeffin's "Answer" moved here because it's a reply to me, not an answer to the originally posted question:
Sir, as you said you are correct. But when i check the resolution, the resolution of both the image is same. Thanks a lot for it. But when i run the ssim code i came across another error
??? Undefined function or method 'conv2' for input arguments of type 'double' and attributes 'full 3d real'.
Error in ==> filter2 at 73 y = conv2(hcol, hrow, x, shape);
Error in ==> ssim at 194 mu1 = filter2(window, img1, 'valid');
I goggled and found the solution that the image is in 3D, and it should be converted into grey scale.This works for normal images. But in my program, when i first convert the image into grey scale and get the reconstructed image using motion compensation, its fully a white blank image. And if i dont convert into greyscale and do motion compensation,i get an better reconstructed image, but the problem is in finding SSIM which i have mentioned above.
??? Undefined function or method 'conv2' for input ...
Kindly help me.
My next doubt is that i am actually trying to implement the frame rate up conversion conversion concept once i complete the motion compensation, in matlab. Is it possible to implement this frame rate up conversion conversion code in matlab? Or is there any code available for frame rate up conversion conversion in matlab tutorials.
Sir, my doubt is because i am a beginner in this area. Kindly reply me.
Image Analyst
2014-6-16
编辑:Image Analyst
2014-6-16
You need to use conv2() on a 2D image - that's what the 2 means. If you want to convolve in 3D, which I highly doubt, you'd need to use convn(). To convolve a color image, you need to extract individual color channels, cast them to double, and then call conv2().
To display floating point images, you need to use [] in imshow:
imshow(y, []);
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!