Я хотел бы узнать больше о том, как маркировать пиксели на изображениях. Я хочу использовать алгоритмы в Caffe, чтобы создать программу обнаружения краев. До сих пор я фильтровал изображение, чтобы получить края, и успешно написал код, чтобы определить, является ли пиксель краем или нет (полагаясь на соседние пиксели). Все, что я хочу сейчас сделать — это пометить их как ребра, чтобы я мог использовать их в качестве обучающих данных в своем алгоритме (-ах). Я новичок в C ++ и Caffe. Что мне действительно нужно, так это чтобы кто-то объяснил, как именно работает маркировка, я бы сказал, чтобы перейти к каждому пикселю, который он считает ребром, и присвоить ему значение 1 для края и 0 для не края? ЕСЛИ так, как мне это сделать? Ссылки и пошаговые руководства приветствуются, поскольку я некоторое время боролся за эту задачу.
Хорошо, например, я достиг этого кода:
Mat pixelComparisonAlg(Mat img){
Mat img_gray;
img_gray = navigateImage(img.clone());
for(int x=0; x < img_gray.cols-1 ; x++){
for(int y=0; y < img_gray.rows-1; y++ ){
Vec3b value1 = img_gray.at<Vec3b>(Point(x+1,y+1));
Vec3b value2 = img_gray.at<Vec3b>(Point(x+1,y));
Vec3b value4 = img_gray.at<Vec3b>(Point(x,y+1));
Vec3b value = img_gray.at<Vec3b>(Point(x,y));
if( value1 != value || value != value2 || value!= value4){
//EDGE!
value.val[0] = 0;
value.val[1] = 0;
value.val[2] = 255;
value1.val[0] = 0;
value1.val[1] = 0;
value1.val[2] = 255;
img_gray.at<Vec3b>(Point(x,y)) = value;
}
else{
value;
}
}
}
return img_gray;
}int main( int argc, char** argv )
{
Mat img = cv::imread("...", CV_LOAD_IMAGE_COLOR);if(! img.data){
cout << "could not open or find the image" << endl;
return -1;
}
imshow("edges", pixelComparisonAlg(img.clone()));
cv::waitKey(0);
return 0;
}
есть ли возможность пометить эти пиксели как края? Допустим, я беру код, который меняет цвет краев на красный (после оператора if), изменяю его, чтобы пометить пиксель как край или нет. Таким образом, у меня есть вектор, несущий информацию о пикселе: цвет (3 векторных элемента) и метка (1 векторный элемент)
Спасибо
Задача ещё не решена.