0

エッジ検出にソーベル フィルターを使用しています。グラデーションの方向を色分けして説明する方法。たとえば、水平方向のエッジは青色で、垂直方向のエッジは黄色ですか?

ありがとうございました。

4

1 に答える 1

1

水平エッジまたは垂直エッジのどちらを検出するかを指定できるため (ここで確認してください)、2 つのフィルタリング操作 (1 つは水平方向、もう 1 つは垂直方向) を実行し、結果の各画像を保存してから、それらを連結して最終的な 3 チャネル RGB 画像を形成することができます。 .

黄色の RGB カラー コードは[1 1 0]で、青色の RGB カラー コードは です[0 0 1]。そのため、この場合、垂直エッジ イメージは最初の 2 チャネルを占有し、水平エッジ イメージは最後のチャネルを占有します。

例:

clear
clc
close all

A = imread('circuit.tif');

[r,c,~] = size(A);

EdgeH = edge(A,'Sobel','Horizontal');
EdgeV = edge(A,'Sobel','Vertical');

%// Arrange the binary images to form a RGB color image.
FinalIm = zeros(r,c,3,'uint8');

FinalIm(:,:,1) = 255*EdgeV;
FinalIm(:,:,2) = 255*EdgeV;
FinalIm(:,:,3) = 255*EdgeH;

figure;

subplot(1,2,1)
imshow(A)

subplot(1,2,2)
imshow(FinalIm)

出力:

ここに画像の説明を入力

于 2015-05-08T11:55:47.473 に答える