以两种分辨率扫描同一物体的两幅图像以获取微观和宏观信息的图像构建

Image construction from two image of same object scanned at two resolution for micro and macro information

我以两倍的放大倍率扫描了 SEM 图像,类似于此 sample image。我想将它们合并成一个图像,这样我就可以获得小尺度和大尺度毛孔的信息。 我想知道如何使用 python 或 Matlab 从这些 2D 切片创建单个图像。

您可以使用 MATLAB estimateGeometricTransform 示例:

% Read the images.
I1 = rgb2gray(imread('macro.png'));
I2 = rgb2gray(imread('micro.png'));

% Reuse MATLAB example.
original = I1;
distorted = I2;

% Detect and extract features from the original and the transformed images.
% (Use more octaves and scales and lower threshold for improving robustness).
ptsOriginal  = detectSURFFeatures(original, 'NumOctaves', 5, 'NumScaleLevels', 5, 'MetricThreshold', 10);
ptsDistorted = detectSURFFeatures(distorted, 'NumOctaves', 5, 'NumScaleLevels', 5, 'MetricThreshold', 10);
[featuresOriginal,validPtsOriginal] = extractFeatures(original,ptsOriginal);
[featuresDistorted,validPtsDistorted] = extractFeatures(distorted,ptsDistorted);

% Match and display features between the images.
index_pairs = matchFeatures(featuresOriginal,featuresDistorted);
matchedPtsOriginal  = validPtsOriginal(index_pairs(:,1));
matchedPtsDistorted = validPtsDistorted(index_pairs(:,2));
figure
showMatchedFeatures(original,distorted,matchedPtsOriginal,matchedPtsDistorted)
title('Matched SURF Points With Outliers');

% Exclude the outliers, estimate the transformation matrix, and display the results.
[tform,inlierPtsDistorted,inlierPtsOriginal] = estimateGeometricTransform(matchedPtsDistorted,matchedPtsOriginal, 'similarity');
figure
showMatchedFeatures(original,distorted, inlierPtsOriginal,inlierPtsDistorted);
title('Matched inlier points');   

%Recover the original image from the distorted image.
outputView = imref2d(size(original));
Ir = imwarp(distorted,tform,'OutputView',outputView);
figure; imshow(Ir); 
title('Recovered image');

% Visualize it somehow...
imshowpair(original, Ir)

结果:

注:
我手动删除了图片中的文字。