ir_img = imread('D:\桌面1\peizhun\invisual_T.jpg'); vis_img = imread('D:\桌面1\peizhun\visual_Z.jpg'); % 提取SIFT特征点 ir_pts = detectSURFFeatures(rgb2gray(ir_img)); vis_pts = detectSURFFeatures(rgb2gray(vis_img)); % 提取特征点描述符 [ir_features, ir_pts] = extractFeatures(rgb2gray(ir_img), ir_pts); [vis_features, vis_pts] = extractFeatures(rgb2gray(vis_img), vis_pts); % 匹配特征点 index_pairs = matchFeatures(ir_features, vis_features); matched_ir_pts = ir_pts(index_pairs(:,1)); matched_vis_pts = vis_pts(index_pairs(:,2)); % 用RANSAC算法计算单应性矩阵 [ir_inliers, vis_inliers] = estimateGeometricTransform(... matched_ir_pts, matched_vis_pts, 'projective'); % 对红外图像进行单应性变换 registered_ir = imwarp(ir_img, ir_inliers); registered_vis = vis_img; % 对齐两张图像 merged_image = imfuse(registered_vis, registered_ir, 'blend'); % 显示结果 imshow(merged_image);这段代码出现了错误错误使用 vision.internal.geotrans.algEstimateGeometricTransform>checkRuntimeStatus (第 99 行) matchedPoints1 and matchedPoints2 do not have enough points. The number of points in each set must be at least 4. 出错 vision.internal.geotrans.algEstimateGeometricTransform (第 70 行) checkRuntimeStatus(statusCode, status, sampleSize); 出错 estimateGeometricTransform (第 123 行) vision.internal.geotrans.algEstimateGeometricTransform(... 出错 peizhun (第 22 行) [ir_inliers, vis_inliers] = estimateGeometricTransform(...
时间: 2024-04-26 22:26:38 浏览: 128
imread实现过程
这段代码中出现了一个错误,指出匹配的特征点数不足。这个错误可能是由于提取的SURF特征点数量不够所导致的。可以尝试增加特征点的数量,或者使用其他的特征点提取算法。
另外,这段代码中读取图片的路径中包含了中文字符,可能会导致读取失败。建议将路径中的中文字符改为英文字符,或者使用相对路径来读取图片文件。
阅读全文