vin*_*ini 2 matlab opencv image image-processing
在MATLAB中有没有办法去除白色背景并将其变成黑色?
说我有这个图像:

当我应用答案中建议的代码时,我得到以下输出:哪个不完美

正如安德烈注意到的那样,问题在于并非所有背景像素都是"255白色".这可能是由于JPEG压缩算法而发生的,也是因为图像中有水果的阴影.
要解决这个问题,首先通过模糊图像获得水果区域的二进制掩码(这是克服JPEG伪像所必需的),然后以非常高的值对图像进行阈值处理,但略低于255.这是解决方案Matlab的:
I = imread('http://i.stack.imgur.com/5p4jV.jpg'); % Load your image.
H = fspecial('gaussian'); % Create the filter kernel.
I = imfilter(I,H); % Blur the image.
Mask = im2bw(Ig, 0.9); % Now we are generating the binary mask.
I([Mask, Mask, Mask]) = 0; % Now we have the image.
Run Code Online (Sandbox Code Playgroud)
这是输出(您也可以在im2bw中尝试不同的阈值):

| 归档时间: |
|
| 查看次数: |
3057 次 |
| 最近记录: |