默认情况下,imfuse只是将这对图像叠加在不同的色带中(默认为Method=falsecolor
and ColorChannels=green-magenta
).
下面是 MATLAB 中的一个示例来说明(用 Python/OpenCV 编写应该很容易):
% a pair of grayscale images
A = imread('cameraman.tif');
B = imrotate(A,5,'bicubic','crop'); % image "A" rotated a bit
% use IMFUSE
C = imfuse(A,B);
imshow(C)
% use our version where: Red=B, Green=A, Blue=B
C = cat(3, B, A, B);
imshow(C)
两者应该给你同样的东西:
EDIT:
这是 Python/OpenCV 版本:
import numpy as np
import cv2
A = cv2.imread(r"C:\path\to\a.png", 0)
B = cv2.imread(r"C:\path\to\b.png", 0)
#C = cv2.merge((B,A,B))
C = np.dstack((B,A,B))
cv2.imshow("imfuse",C)
cv2.waitKey(0)