如何用Python在OpenCV中合成两个图像?

2024-10-01 07:50:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个图像保持不变,另一个图像是第一个,但应用了过滤器。我想创建第三个图像,它应该是前两个图像的合成。在

我知道在MATLAB中有一个名为imfuse()的函数,默认颜色通道为绿洋红。我想在Python中做同样的事情,使用完全相同的颜色通道。我该怎么做?在

以下是图像(第一张是原始图片,第二张是应用了滤波器的第一张图片,第三张是MATLAB的结果):

imagefilterresult

谢谢你的帮助!在


Tags: 函数图像过滤器颜色图片事情matlab洋红
1条回答
网友
1楼 · 发布于 2024-10-01 07:50:18

默认情况下,^{}只是以不同的色带覆盖这对图像(默认为Method=falsecolorColorChannels=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)

两者都应该给你同样的东西:

fused_images


编辑:

以下是Python/OpenCV版本:

^{pr2}$

opencv_python_imfuse

相关问题 更多 >