drg*_*rgs 4 python matlab opencv image-processing
我有一个保持不变的图像和另一个图像,它是第一个图像,但应用了过滤器。我想创建第三个图像,它应该是前两个图像的合成。
我知道在 MATLAB 中有一个函数调用 asimfuse()与默认颜色通道绿色-洋红色。我想在 Python 中做同样的事情,使用完全相同的颜色通道。我怎样才能做到这一点 ?
这是图像(第一张是原始图片,第二张是应用了过滤器的第一张图片,第三张是 MATLAB 结果):
谢谢你的帮助 !
默认情况下,imfuse简单地覆盖不同色带中的图像对(默认为Method=falsecolor和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)
Run Code Online (Sandbox Code Playgroud)
两者都应该给你同样的东西:

这是 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)
Run Code Online (Sandbox Code Playgroud)
