Код: Выделить всё
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