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

조회 수: 7 (최근 30일)
rocket rok
rocket rok 2020년 9월 8일
댓글: rocket rok 2020년 9월 14일
画像を二値化し、画像内の曲線(黒い線)をプロットとして抽出する方法を模索しています。
何か良い方法はありますでしょうか?
(先行研究と同じ作業を行いたいのですが、方法が分からず、困っております。
先行研究: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 2020년 9월 8일
편집: Hiroyuki Hishida 2020년 9월 8일
こんばんは。
TBCの断面ミクロ評価ですかね?元論文拝見しましたが、あまりはっきり記載がないのですね。 となると、実際的には、閾値をどう決めるかはご判断いただく必要があると思いますが、処理はだいたいこうなるかと思います。
  1. 閾値処理 graythreshやimbinarizeなど
  2. 母材側の穴埋め処理 imfillなど
いかがでしょうか
菱田
rocket rok
rocket rok 2020년 9월 14일
ありがとうございます。
参考にさせていただきます。

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

채택된 답변

Kenta
Kenta 2020년 9월 8일
こんにちは、論文のほうも教えていただきありがとうございます。
今回の図の場合だと、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 2020년 9월 14일
ご回答ありがとうございます。
おっしゃる通り、複数回に湧ける必要がありそうです。
頂いたcodeも参考にし、やってみます。
ありがとうごさいました。

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

추가 답변 (0개)

제품


릴리스

R2019b

Community Treasure Hunt

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

Start Hunting!