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

조회 수: 8 (최근 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 CenterFile Exchange에서 Image Processing Toolbox에 대해 자세히 알아보기

제품

Community Treasure Hunt

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

Start Hunting!