Реализация оператора СобеляC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Реализация оператора Собеля

Сообщение Anonymous »

Я пытаюсь реализовать оператор sobel как в горизонтальном, так и в вертикальном направлении. Но почему-то я получаю обратный результат. Код, который я приложил ниже. Для горизонтальной маски

Код: Выделить всё

char mask [3][3]=  {{-1,-2,-1},{0,0,0},{1,2,1}};

void masking(Mat image){

Mat temImage= image.clone();
for (int i = 1; i < image.rows-1; i++)
{
for (int j = 1; j < image.cols-1; j++)
{
for(int k=0;k 255)
sum = 255;

temImage.at(i,j)[k] = sum;

}
}
}
//printf("conter = %d",counter);
imshow( "Display", temImage );
imwrite("output1.png",temImage);


Я получаю результат как

Изображение


где что касается вертикальная маска

Код: Выделить всё

char mask [3][3]=  {{-1,0,1},{-2,0,2},{-1,0,1}};

void masking(Mat image){

Mat temImage= image.clone();
for (int i = 1; i < image.rows-1; i++)
{
for (int j = 1; j < image.cols-1; j++)
{
for(int k=0;k 255)
sum = 255;

temImage.at(i,j)[k] = sum;

}
}
}
//printf("conter = %d",counter);
imshow( "Display", temImage );
imwrite("output1.png",temImage);


Я получаю вывод как

Изображение

Основная функция прилагается ниже

Код: Выделить всё

int main( int argc, char** argv ){
Mat input_image = imread("sobel1.jpg",1);
masking(input_image);
waitKey(0);
return 0;


Согласно руководству https://www.tutorialspoint.com/dip/sobel_operator.htm Я должен получить обратный вывод. Может ли кто-нибудь мне в этом помочь?

Исходное изображение:

Изображение


Подробнее здесь: https://stackoverflow.com/questions/458 ... l-operator
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»