首页 > 解决方案 > Matlab将rgb并排添加到二进制图像

问题描述

我应该在我的阈值图像旁边添加另一个图像,其原始颜色如下:预期图像

但我不确定如何在 matlab 上仅实现二进制图像阈值。如何并排显示图像?

我的结果

clear all;
close all;
clc;

% read image
palm = imread('palmDown (2).jpg');


%split into RGB
redPalm = palm(:,:,1);
greenPalm = palm(:,:,2);
bluePalm = palm(:,:,3);

redLevel = -0.1;
greenLevel = -0.1;
blueLevel = 0.06;

redThresh = imbinarize(redPalm, redLevel);
greenThresh = imbinarize(greenPalm, greenLevel);
blueThresh = imbinarize(bluePalm, blueLevel);

colorSum = (redThresh&greenThresh&blueThresh);

colorSum2 = imcomplement(colorSum);
thumbFilled = imfill(colorSum2, 'holes');

figure;
imshow(thumbFilled); title('Sum of all');

标签: matlabimage-processingthreshold

解决方案


有很多方法可以对阈值图像进行着色。一种简单的方法是乘法:

palm = im2double(palm); % it’s easier to work with doubles in MATLAB
palm2 = palm * thumbFilled;
imshow([palm, palm2])

乘法使用隐式单例展开。如果您有旧版本的 MATLAB,它将无法工作,您必须使用它bsxfun


推荐阅读