可能问题是你所声明的函数没有定义,即你声明了一个函数却没有实现这个函数。
你可以把函数的声明和定义都放在一个文件里试试。或者把函数定义文件cpp也包含在主调函数的文件里。
更多具体情况还得看你的代码。
因为第一幅图本身是灰度图像,第二幅图是RGB图像,你变换只用到了红色通道,当然就是红的咯,你可以加个
if size(I1,3)==3
I1=rgb2gray(I1);
end
%%%这段代码好像可以执行你的东西了。。。试试看吧。
clc;clear all;close all;
IA=imread('1jpg');
IA=rgb2gray(IA);%%%图像要灰度化的;不然彩色的图像是一个三维的矩阵;你再想想看;
% imshow(IA)
[f1,f2]=freqspace(size(IA),'meshgrid');
D=03;
r=f1^2+f2^2;
n=4;
for i=1:size(IA,1)
for j=1:size(IA,2)
t=(DD)/r(i,j);
Hd(i,j)=1/(t^n+1);
end
end
Y=fft2(double(IA));
Y=fftshift(Y);
Ya=YHd;
Ya=ifftshift(Ya);
Ia=real(ifft2(Ya));
figure
subplot(2,2,1),imshow(uint8(IA));
subplot(2,2,2),imshow(uint8(Ia));
figure
surf(Hd,'Facecolor','interp','Edgecolor','none','Facelighting','phong');
以上就是关于VC++自编图像处理程序错误fatal error C1189: #error全部的内容,包括:VC++自编图像处理程序错误fatal error C1189: #error、matlab图像处理程序遇到的问题、用matlab做高斯滤波图像处理,.*时为什么出现Matrix dimensions must agree的错误。怎么改谢谢等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)