Получить наибольшую структуру (Canny Edge Detection)?

Я использую библиотеку, найденную по этой ссылке: https://code.google.com/p/simple-iphone-image-processing/

Я реализовал Image.h и Image.mm и получил фильтр Canny Edge Detection с помощью этого кода:

- (IBAction)findEdges {
ImageWrapper *greyScale=Image::createImage(_sourceImage, _sourceImage.size.width/4, _sourceImage.size.height/4);
ImageWrapper *edges=greyScale.image->gaussianBlur().image->cannyEdgeExtract(0.4,0.6);
// show the results
UIImage *newimageView = edges.image->toUIImage();
_imageView.image = newimageView;
}

Теперь я заметил, что есть метод findLargestStructure, Это тот метод:

void Image::findLargestStructure(std::vector<ImagePoint> *maxPoints) {
// process the image
std::vector<ImagePoint> points;
points.reserve(10000);
for(int y=0; y<m_height; y++) {
for(int x=0; x<m_width; x++) {
// if we've found a point in the image then extract everything connected to it
if((*this)[y][x]!=0) {
extractConnectedRegion(x, y, &points);
if(points.size()>maxPoints->size()) {
maxPoints->clear();
maxPoints->resize(points.size());
std::copy(points.begin(), points.end(), maxPoints->begin());
}
points.clear();
}
}
}
}

Мой вопрос, что именно делает этот метод и как я могу назвать его / использовать из кода Objective C? В конце концов, моя цель в конце всего этого состоит в том, чтобы использовать Canny Edge Detection, который есть в этой библиотеке, и каким-то образом извлечь из нее CGRect, используя среднее значение краевых точек самой большой структуры, а затем использовать это в моем приложении.

Так вернет ли этот метод вектор этих точек или нет? Я знаком с Objective-C, но я не так хорош в C ++.

Любая помощь / советы будут с благодарностью!

0

Решение

Код не совместим с Objective C, так как он использует типы C ++ в интерфейсе, а именно std::vector<>,

Код звонков extractConnectedRegion на ряд баллов и пытается вернуть самый большой результат. Есть несколько мелких щупалец: например, назначение maxPoints было бы гораздо лучше сделать как maxPoints = points, (Вы можете сделать еще лучше, но это становится неочевидным)

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]