int mask_size= 3;
char mask [3][3]= {{-1,0,1},{-2,0,2},{-1,0,1}};
void sobel(Mat input_image)
{
/**Padding m-1 and n-1 zeroes to the result where m and n are mask_size**/
Mat result=Mat::zeros(input_image.rows+(mask_size - 1) * 2,input_image.cols+(mask_size - 1) * 2,CV_8UC1);
Mat result1=Mat::zeros(result.rows,result.cols,CV_8UC1);
int sum= 0;
/*For loop for copying original values to new padded image **/
for(int i=0;i
Подробнее здесь: [url]https://stackoverflow.com/questions/45582633/how-to-implement-sobel-operator[/url]
Я реализовал оператор Собеля в вертикальном направлении. Но результат, который я получаю, очень плохой. Я приложил свой код ниже.
[code]int mask_size= 3;
char mask [3][3]= {{-1,0,1},{-2,0,2},{-1,0,1}};
void sobel(Mat input_image) {
/**Padding m-1 and n-1 zeroes to the result where m and n are mask_size**/
Mat result=Mat::zeros(input_image.rows+(mask_size - 1) * 2,input_image.cols+(mask_size - 1) * 2,CV_8UC1); Mat result1=Mat::zeros(result.rows,result.cols,CV_8UC1); int sum= 0;
/*For loop for copying original values to new padded image **/
Я пытаюсь реализовать оператор sobel как в горизонтальном, так и в вертикальном направлении. Но почему-то я получаю обратный результат. Код, который я приложил ниже. Для горизонтальной маски
Я использую OpenCV и NumPy для применения фильтра Собеля к изображению в Python и ожидал, что после применения фильтра выходные данные будут иметь меньшие размеры. Согласно уравнению вывод = ввод - размер ядра // шаг + 1, я думал, что вывод должен...
Я использую OpenCV и NumPy для применения фильтра Собеля к изображению в Python и ожидал, что после применения фильтра выходные данные будут иметь меньшие размеры. Согласно уравнению вывод = ввод - размер ядра // шаг + 1, я думал, что вывод должен...
Дано число x. Выведите стрелки, указывающие вправо и влево, состоящие из звездочек, где кончик стрелки представляет собой
треугольник с длиной x. Тело стрелки, имеющее прямоугольную форму, будет иметь ширину x и длину
удвоенную x. Поскольку ширина...