- 閾値処理 graythreshやimbinarizeなど
- 母材側の穴埋め処理 imfillなど
画像を二値化し、画像内の曲線のプロットデータを読み込むことは可能でしょうか。
13 views (last 30 days)
Show older comments
画像を二値化し、画像内の曲線(黒い線)をプロットとして抽出する方法を模索しています。
何か良い方法はありますでしょうか?
(先行研究と同じ作業を行いたいのですが、方法が分からず、困っております。
先行研究:https://www.semanticscholar.org/paper/Influence-of-Interface-Roughness-on-the-Fatigue-of-Eriksson-Sj%C3%B6str%C3%B6m/7503cd1099b7e3dc872d792867dc4c79c82dcfee)
2 Comments
Hiroyuki Hishida
on 8 Sep 2020
Edited: Hiroyuki Hishida
on 8 Sep 2020
こんばんは。
TBCの断面ミクロ評価ですかね?元論文拝見しましたが、あまりはっきり記載がないのですね。 となると、実際的には、閾値をどう決めるかはご判断いただく必要があると思いますが、処理はだいたいこうなるかと思います。
いかがでしょうか
菱田
Accepted Answer
Kenta
on 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))
More Answers (0)
See Also
Categories
Find more on イメージ タイプの変換 in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!