Я пытаюсь получить этот вывод черно-белые плюсы и негативы и серые нейтралы
Но вместо этого я получаю только черно-белое
Я не уверен, что изменить в моем коде.
Mat sobelX(const cv::Mat &m){
Mat im = m.clone();
int gx, mag;
for (int i = 0; i < m.rows; i++){
for (int j = 0; j < m.cols;
//find x gradient
gx = m.at<uchar>(i-1, j-1)
+ 2*m.at<uchar>(i, j-1)
+ m.at<uchar>(i+1, j-1)
- m.at<uchar>(i-1, j+1)
- 2*m.at<uchar>(i, j+1)
- m.at<uchar>(i+1, j+1);
mag = sqrt(gx*gx);
if (mag < 0) {
mag = 0; //set to black
}
else if (mag > 255) {
mag = 255; //set to white
}
im.at<uchar>(i, j) = mag;
}
}
return im;
}
Спасибо.