2015-05-08 4 views

ответ

1

Поскольку вы можете указать, хотите ли вы, чтобы был обнаружен поиск по горизонтали или по вертикали (отметьте here), вы можете выполнить 2 операции фильтрации (один горизонтальный и другой вертикальный) и сохранить каждое результирующее изображение, а затем объединить их, чтобы сформировать окончательный, 3 -каналы RGB-изображения.

Цветовой код RGB для желтого цвета - [1 1 0], а синий - [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) 

Выход:

enter image description here

+0

Привет Спасибо вам much.That работал perfectly.But, если сказать, что я извлек диагональный край также и участок с другой color.What должен Я делаю? – indu

+0

Очень рад помочь! Чтобы отобразить другой набор ребер с другим цветом, вам нужно будет играть с красными, зелеными и синими каналами «FinalIm». Пожалуйста, посмотрите мой ответ в конце [этого] (http://stackoverflow.com/questions/27550252/change-color-of-a-specific-region-in-eye-image-matlab/27554155#27554155), в котором пользователь выбирает цвет для заполнения области. Эта же методика будет применяться для вас; в вашем текущем случае «маска» будет представлять собой вертикальные, горизонтальные и диагональные изображения края. –

Смежные вопросы