木の輪郭検出について

12 次查看(过去 30 天)
蚊 石
蚊 石 2020-8-24
评论: 蚊 石 2020-9-11
木の輪郭検出を現在試みてはいるのですが、背景や地面などの要素により上手く検出できません。何か良い案があれば教えて欲しいです。
  2 个评论
Shunichi Kusano
Shunichi Kusano 2020-8-24
可能でしたら今試されている画像と現状の結果を添付いただき、具体的にどういうアルゴリズムを試していて、どこがうまくいってないかを記載していただくと、コメントも集まりやすいかと思います。
蚊 石
蚊 石 2020-8-24
私の知識レベルでは、現状このレベルのプログラミングしかできません
%グレースケール処理
RGB = imread('test2.jpg'); %画像の読み込み
a = rgb2gray(RGB); %グレースケール化
%ノイズ除去
J = imnoise(a,'salt & pepper',0.02);
Kaverage = filter2(fspecial('average',3),J)/255;
GRAY = medfilt2(J);
%Sobelフィルタ
Sobel_x = [-1 0 1; -2 0 2; -1 0 1]; %x方向
Sobel_y = [-1 -2 -1; 0 0 0; 1 2 1]; %y方向
%ノルム計算
Norm = zeros(size(GRAY,1),size(GRAY,2)); %ノルム格納配列
for i = 2:size(GRAY,1)-1 %行ループ
for j = 2:size(GRAY,2)-1 %列ループ
Localmat = [GRAY(i-1,j-1) GRAY(i,j-1) GRAY(i+1,j-1); GRAY(i-1,j) GRAY(i,j) GRAY(i+1,j); GRAY(i-1,j+1) GRAY(i,j+1) GRAY(i+1,j+1)]; %計算領域の輝度値
Norm(i,j) = norm([sum(sum(double(Localmat).*Sobel_x)),sum(sum(double(Localmat).*Sobel_y))]); %ノルム計算,格納
end
end
clear GRAY i j Sobel_x Sobel_y Localmat; %メモリ解放
%結果出力
Ave = mean(mean(Norm)); %ノルム平均値
Norm(Norm>=Ave) = 255; %平均値以上
Norm(Norm~=255) = 0; %平均値未満
Norm = uint8(Norm); %配列の型変換
imshow(Norm);
clear;

请先登录,再进行评论。

采纳的回答

Shunichi Kusano
Shunichi Kusano 2020-8-26
添付の画像拝見しました。
前提としてかなり難しいと思います。試されているのはグレースケール画像でのエッジ抽出かと思いますが、他に思いつくアプローチとしましては、色によるセグメンテーション(https://jp.mathworks.com/help/images/ref/colorthresholder-app.html?s_tid=srchtitle)、テクスチャによるセグメンテーション(https://jp.mathworks.com/help/images/texture-segmentation-using-texture-filters.html)くらいでしょうか。ただ、両方ともうまくいかない気がします。その場合は深層学習を試すしかないかと思います。
補足ですが、image processing toolboxをお持ちなら添付いただいたコードにあるエッジ抽出プログラムはedge関数で行うことができます。
  4 个评论
Kenta
Kenta 2020-9-8
なるほど、ありがとうございます。おもしろそうな課題ですね!
蚊 石
蚊 石 2020-9-11
重ねて質問させていただきたいのですが、深層学習を行うにあたってどのような手法を試みたらよいのでしょうか

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 グラフィックス パフォーマンス 的更多信息

Community Treasure Hunt

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

Start Hunting!