Лучший способ найти самый большой квадрат, который вписывается в многоугольник, нарисованный на изображении.

Я использую OpenCV, чтобы сопоставить несколько точек обзора в панораме. В результате получается набор изображений на черном фоне (этакая многоугольная форма). Я хочу обрезать этот многоугольник, чтобы в результирующем изображении не было черного. Есть ли хороший алгоритм для этого?

Наивный способ, который я думаю, - начать с маленького квадрата в середине изображения и расширять его вверх, пока я не нажму черный, а затем расширять влево и вправо.

Решение Я хочу тот, который максимизирует общую площадь залитой области.

РЕДАКТИРОВАТЬ : многоугольник вогнутый, поэтому нам нужно проверить это - я думаю, что алгоритм O (N ^ 2) проверки каждой пары вершин возможен, поскольку N мало. Но нам нужно проверить, что граница области заполнена, что, я думаю, можно сделать за O (N), проверив каждую вершину, чтобы увидеть, находится ли она в пределах прямоугольника, определенного выбранной парой вершин. #include #include int main () {bool alive = ...

Итак, я недавно установил JSONCPP, и по какой-то причине он выдает ошибки, когда я пробую этот код:

#include <json.h>
#include <iostream>
#include <fstream>

int main(){
    bool alive = true;
    while (alive){
    Json::Value root;   // will contains the root value after parsing.
    Json::Reader reader;
    std::string test = "testis.json";
    bool parsingSuccessful = reader.parse( test, root, false );
    if ( !parsingSuccessful )
    {
        // report to the user the failure and their locations in the document.
        std::cout  << reader.getFormatedErrorMessages()
               << "\n";
    }

    std::string encoding = root.get("encoding", "UTF-8" ).asString();
    std::cout << encoding << "\n";
    alive = false;


    }
    return 0;
}

А вот файл:

{
"encoding" : "lab"
}

В нем говорится, что есть синтаксическая ошибка в строке 1, столбце 1 и что должно быть значение, объект или массив. Кто-нибудь знает, как это исправить?

РЕДАКТИРОВАТЬ: изменен на текущий код с pastebin

12
задан Antonio Pérez 12 March 2012 в 16:20
поделиться