ある2値画像に白い線​を引いて保存したいの​ですができません.

10 ビュー (過去 30 日間)
Yumi Iwakami
Yumi Iwakami 2017 年 4 月 15 日
コメント済み: Yumi Iwakami 2017 年 7 月 10 日
ある2値画像に白い線を引いて保存したいのですができません. 違う色だと保存できるのですが,白だと保存できません.なにが原因でしょうか?
imshow(BW_IMG,'Border','tight');
hold on
plot(X,Y,'w');
print('A.bmp','-dpng','-r0');
  3 件のコメント
mizuki
mizuki 2017 年 4 月 16 日
編集済み: mizuki 2017 年 4 月 16 日
以下のコードでは、グレースケールの画像に白のラインを描いて保存ができています。
I = imread('peppers.png');
BW_IMG = rgb2gray(I);
X = 50:100;
Y = 50:100;
imshow(BW_IMG,'Border','tight');
hold on
plot(X,Y,'w');
print('A.bmp','-dpng','-r0');
問題の切り分けをするために、以下の点について教えていただけますでしょうか。
  1. 画像を保存する前の plot 関数実行後の出力画像上では白のラインは見えていますでしょうか。
  2. 画像の白い部分に白の線をのせているということはありませんでしょうか。
  3. 黒のラインではいかがでしょうか。
Yumi Iwakami
Yumi Iwakami 2017 年 7 月 10 日
コメントありがとうございます.
1は見えています. 2ですが,白の領域のない部分にプロットしても出てこないので,重なっているとは考えにくいです. 3.黒は背景が黒であるため試していませんが,シアンやマゼンタなどの別の色は可能でした.
このときは急ぎだったので,シアンで線を引いて,もう一度2値化する処理をいれて回避しました.

サインインしてコメントする。

採用された回答

Jiro Doke
Jiro Doke 2017 年 7 月 7 日
Figure InvertHardCopy プロパティを変更すればうまく行くかと思います。上の Mizuki さんのサンプルを借りますと
I = imread('peppers.png');
BW_IMG = imbinarize(rgb2gray(I));
X = 50:100;
Y = 50:100;
imshow(BW_IMG,'Border','tight');
hold on
plot(X,Y,'w');
set(gcf,'InvertHardCopy','off') % <-- 色をディスプレイ上と同じ色にする
print('A.bmp','-dpng','-r0');
  1 件のコメント
Yumi Iwakami
Yumi Iwakami 2017 年 7 月 10 日
このときは急ぎだったので,別の色で線を引き,また2値化するという処理を挟みました. 同じ現象のときにやってみます. ありがとうございます.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeImage Processing Toolbox についてさらに検索

製品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!