イメージ内の曲がったコンベアを検出しようとしています。私はそれが示すように、その端部matlabで滑らかなカーブを検出する方法
%# load image, and process it
I = imread('ggp\2.jpg');
g = rgb2gray(I);
bw = edge(g,'Canny');
[H,T,R] = hough(bw);
P = houghpeaks(H,500,'threshold',ceil(0.4*max(H(:))));
% I apply houghlines on the grayscale picture, otherwise it doesn't detect
% the straight lines shown in the picture
lines = houghlines(g,T,R,P,'FillGap',5,'MinLength',50);
figure, imshow(g), hold on
for k = 1:length(lines)
xy = [lines(k).point1; lines(k).point2];
deltaY = xy(2,2) - xy(1,2);
deltaX = xy(2,1) - xy(1,1);
angle = atan2(deltaY, deltaX) * 180/pi;
if (angle == 0)
plot(xy(:,1),xy(:,2),'LineWidth',2,'Color','green');
% Plot beginnings and ends of lines
plot(xy(1,1),xy(1,2),'x','LineWidth',2,'Color','yellow');
plot(xy(2,1),xy(2,2),'x','LineWidth',2,'Color','red');
end
end
を検出するためのハフ変換を使用して、次のコードを使用し、二つの直線が正常にコンベアの上部と下部のエッジを検出するが、私は検出する方法がわかりませんそれが曲がっているかどうか(写真の中では曲がっている)とその程度を計算する方法。
約下図(赤色)で手動で描かれた曲線:
私はこのような滑らかな曲線(例えば、2次多項式を検出するために、MATLABでハフ変換のためのコード又は機能は認められませんでした:y= a*x^2
)。その他のソリューションも歓迎します。
元の画像をご提供いただけますか? – Tapio
@タピオ画像を投稿に追加しました。 – Ahmad
私はあなたが検出しようとしている画像のどのカーブを理解していません。手動で画像を描画し、探したいカーブを強調表示できますか? – Shai