Если бы я мог обнаружить круг, используя детектор canny edge, как я могу получить доступ ко всем значениям, находящимся внутри круга?значения пикселя доступа внутри обнаруженного объекта/C++
void Canny(InputArray image, OutputArray edges, double threshold1, double threshold2, int apertureSize=3, bool L2gradient=false)
выход этой функции даст мне краевые значения, которые детектируют с помощью детектора края, но то, что я хочу, это все значения внутри круга.
заранее спасибо
------ после редактирования .......
Mat mask = Mat::zeros(canny_edge.rows, canny_edge.cols, CV_8UC1);
Mat crop(main.rows, main.cols, CV_32FC1);
main.copyTo(crop, mask);
for(unsigned int y=0; y< height; y++)
for(unsigned int x=0; x< width; x++)
if(mask.at<unsigned char>(y,x) > 0)
{
}
В отредактированной версии есть несколько проблем: 1. Я не уверен, что означает основной и подрез, но вы хотите обрезать (или подизображение) маску тоже, если это намерение. 2. 'mask' состоит только из нулей. Идея состояла в том, чтобы нарисовать объект (заполненный 255 значениями) на изображении маски. Поэтому везде, где маска не равна нулю, пиксель (маски) находится внутри объекта, а так как маска и исходное изображение имеют одинаковый размер, пиксель исходного изображения также находится внутри объекта. – Micka