MATLAB Answers

画像を二値化し、画像​内の曲線のプロットデ​ータを読み込むことは​可能でしょうか。

조회 수: 7(최근 30일)
rocket rok
rocket rok 8 Sep 2020
댓글: rocket rok 14 Sep 2020
画像を二値化し、画像内の曲線(黒い線)をプロットとして抽出する方法を模索しています。
何か良い方法はありますでしょうか?
(先行研究と同じ作業を行いたいのですが、方法が分からず、困っております。
先行研究:https://www.semanticscholar.org/paper/Influence-of-Interface-Roughness-on-the-Fatigue-of-Eriksson-Sj%C3%B6str%C3%B6m/7503cd1099b7e3dc872d792867dc4c79c82dcfee)

  댓글 수: 2

Hiroyuki Hishida
Hiroyuki Hishida 8 Sep 2020
こんばんは。
TBCの断面ミクロ評価ですかね?元論文拝見しましたが、あまりはっきり記載がないのですね。 となると、実際的には、閾値をどう決めるかはご判断いただく必要があると思いますが、処理はだいたいこうなるかと思います。
  1. 閾値処理 graythreshやimbinarizeなど
  2. 母材側の穴埋め処理 imfillなど
いかがでしょうか
菱田
rocket rok
rocket rok 14 Sep 2020
ありがとうございます。
参考にさせていただきます。

댓글을 달려면 로그인하십시오.

답변(1개)

Kenta
Kenta 8 Sep 2020
こんにちは、論文のほうも教えていただきありがとうございます。
今回の図の場合だと、1)白い部分、2)灰色の部分、3)黒い部分(線になっている今回の関心領域)になっていて、
単に大津法で2値化をするとなると、1と2&3というグループに分かれるので、1と2&3を分けて、さらに2と3で分けるというような2段階の解析が望ましい気がします。
例えば上が単に大津の2値化をしたもので、下が今回作った例です。ただ、先行研究とやり方が異なると、今回の質問の趣旨にはそぐわず、あまり役立たないかもしれません。何か役に立てば幸いです。
clear;clc
I=imread('image.jpeg');
figure;imshow(I)
gray=rgb2gray(I);
% 近傍ピクセルの強度をもとに2値化
bw1=imbinarize(gray,'adaptive','ForegroundPolarity',"dark");
figure;imagesc(bw1)
idx=find(bw1==0);
fore=gray(idx);
% 大津の2値のためにヒストグラム計算
[counts,x] = imhist(fore,16);
% 各頻度の表示
stem(x,counts)
% 大津の2値化の閾値決定
T = otsuthresh(counts);
% 大津の2値化の実行
bw2 = ~imbinarize(gray,T);
% 面積によるノイズ除去
bw_final = bwpropfilt(bw2, 'Area', [30, Inf]);
% 表示
figure;imshowpair(I,uint8(bw_final*255))

  댓글 수: 1

rocket rok
rocket rok 14 Sep 2020
ご回答ありがとうございます。
おっしゃる通り、複数回に湧ける必要がありそうです。
頂いたcodeも参考にし、やってみます。
ありがとうごさいました。

댓글을 달려면 로그인하십시오.

제품


릴리스

R2019b

Community Treasure Hunt

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

Start Hunting!