matlab报错错误使用cpcorr求大佬帮忙告知是什么情况

 

In function cpcorr, Images must be intensity images. 如果是这个错,把两个图片转换成灰度图,像这样

I1=imread('1.jpg');
I2=imread('2.jpg');
I1 = rgb2gray(I1);
I2 = rgb2gray(I2);
imwrite(I1, 'test1.jpg');
imwrite(I2, 'test2.jpg');

"cpselect"功能执行完了以后,菜单栏点 File->Export points to Workspace 变量那栏就有刚才采的点了。

此时回到脚本,把读取图片部分和采点部分注释了,运行后半部分

% clear all;
% clc;
% I1=imread('1.jpg');
% I2=imread('2.jpg');
% I1 = rgb2gray(I1);
% I2 = rgb2gray(I2);
% imwrite(I1, 'test1.jpg');
% imwrite(I2, 'test2.jpg');
% unregistered =I2;%%未配准图像
% rect=I1;%%参考图像
% cpselect(unregistered,rect);%%%选择点对,选完后记得保存
% uiwait(msgbox('Click OK after closing the CPSELECT window.','Waiting...'));%创建一个按钮,等待用户反映
fixedPoints=round(fixedPoints);
movingPoints=round(movingPoints);
input_points_corr= cpcorr(movingPoints,fixedPoints,unregistered,rect);%调整控制点位置
tform = cp2tform(input_points_corr,movingPoints,'linear conformal');%%控制点的空间变换
registered = imtransform(unregistered,tform,'XData',[1 300], 'YData',[1 300]);%%对图像进行重采样
H.Position=[232 258 600 402];
figure(H)
subplot(2,2,1)
imagesc(rect)
title('Original image 1')
subplot(2,2,3)
imagesc(unregistered)
title('Unmatched image 2')
subplot(2,2,2)
imagesc(rect)
title('Original image 1')
subplot(2,2,4)
imagesc(registered)
title('Matched image 2')
colormap (gray)

就能得到结果了,也不知道你遇到的是不是这个错误。。。。

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632