MATLAB Answers

0

二次元画像の二値化について

Asked by Tatsuto Okamura on 29 Aug 2019
Latest activity Commented on by Tatsuto Okamura on 1 Sep 2019
二次元画像の二値化において、
『imbinarize』を使用しているのですが、特定の範囲を閾値2/255、それ以外を閾値20/255で二値化したいです。
良い方法はないでしょうか?

  0 Comments

Sign in to comment.

1 Answer

Answer by Shunichi Kusano on 29 Aug 2019
 Accepted Answer

特定の範囲のマスク画像を作成した上で、下のような形で作成可能です。わかりやすくするために一つずつ作って、はめ込んでいますが、「2値化」セクションの3行を1行にくっつけていいと思います。
clear, clc, close all
img = imread('peppers.png');
band = img(:,:,3);
%% 仮のマスク
mask = zeros(size(band), 'logical');
mask(100:300,100:400) = true;
%% 2値化
bw1 = (band > 2) & mask; % mask==1の範囲の2値化
bw2 = (band > 20) & ~mask; % mask==0の範囲の2値化
bw = bw1 | bw2; % 2つの2値化画像をはめ込む
%% 確認
close all
figure, imshow(band, [])
figure, imshow(mask);
figure, imshow(bw1);
figure, imshow(bw2);
figure, imshow(bw);

  1 Comment

ありがとうございます。参考になりました!

Sign in to comment.