Exemplo n.º 1
0
void MainWindow::on_botonPrim_clicked()
{
    prim=new Prim(ciudades);
    int num1=prim->buscar(ui->PrimEdit->text());
    cout<<ui->PrimEdit->text().toUtf8().constData();
    cout<<num1<<endl;
    if(num1!=-1)
        prim->resolverD(num1);
    QString text="Ciudad\tCosto\tPath \n";
    for(int cont=0; cont<54; cont++){
        text=text+QString::number(prim->ciudadesD[cont]->nodo->valor)+"\t"+QString::number(prim->ciudadesD[cont]->costo)+
                "\t"+QString::number(prim->ciudadesD[cont]->path)+"\n";
    }

    QPen penHLines(QColor("#00ff00"), 1, Qt::SolidLine, Qt::FlatCap, Qt::RoundJoin);
    painter->setPen(penHLines);
    for(int num2=0; num2<54; num2++){
        if(prim->ciudadesD[num2]->path!=-1)
        painter->drawLine(dijkstra->ciudadesD[num2]->nodo->punto.x(), dijkstra->ciudadesD[num2]->nodo->punto.y(),
                          dijkstra->ciudadesD[dijkstra->ciudadesD[num2]->path]->nodo->punto.x(),
                dijkstra->ciudadesD[dijkstra->ciudadesD[num2]->path]->nodo->punto.y());
    }
    ui->label->setPixmap(QPixmap::fromImage(*tmp));
    label->show();
    label->print(text);
}
Exemplo n.º 2
0
void MainWindow::on_botonDijkstra_clicked()
{
    dijkstra=new Dijkstra(ciudades);
    double distancia=0;
    int num1=dijkstra->buscar(ui->DCiudad->text());
    cout<<ui->DCiudad->text().toUtf8().constData();
    cout<<num1<<endl;
    if(num1!=-1)
        dijkstra->resolverD(num1);
    QString text="Ciudad\tCosto\tPath \n";
    for(int cont=0; cont<54; cont++){
        text=text+QString::number(prim->ciudadesD[cont]->nodo->valor)+"\t"+QString::number(dijkstra->ciudadesD[cont]->costo)+
                "\t"+QString::number(dijkstra->ciudadesD[cont]->path)+"\n";
    }

    int num2=dijkstra->buscar(ui->DCiudadDestino->text());
    distancia=dijkstra->ciudadesD[num2]->costo;
    QPen penHLines(QColor("#00ff00"), 1, Qt::SolidLine, Qt::FlatCap, Qt::RoundJoin);
    painter->setPen(penHLines);
    while(num2!=num1){
        painter->drawLine(dijkstra->ciudadesD[num2]->nodo->punto.x(), dijkstra->ciudadesD[num2]->nodo->punto.y(),
                          dijkstra->ciudadesD[dijkstra->ciudadesD[num2]->path]->nodo->punto.x(),
                dijkstra->ciudadesD[dijkstra->ciudadesD[num2]->path]->nodo->punto.y());
        num2=dijkstra->ciudadesD[num2]->path;
    }
    QString dist="Distancia: "+QString::number(distancia)+" km \n Tiempo: "+QString::number(distancia/80)+" horas";
    ui->label->setPixmap(QPixmap::fromImage(*tmp));
    ui->label_3->setText(dist);
    label->show();
    label->print(text);

}
Exemplo n.º 3
0
QString	Ocr::TesseractApi::runOcr(QImage& image) {
	api->SetImage(image.bits(), image.width(), image.height(), image.bytesPerLine() / image.width(), image.bytesPerLine());
	char* rectext = api->GetUTF8Text();
	qDebug("text: %s", rectext);

	QVector<QRect> rects;
	tesseract::PageIterator *iter = api->AnalyseLayout();
	while (iter->Next(tesseract::RIL_WORD)) {
		int left, top, right, bottom;

		iter->BoundingBox(
			tesseract::RIL_WORD,
			&left, &top, &right, &bottom
		);

		rects.push_back(QRect(left, top, right - left, bottom - top));
	}

	QPixmap px = QPixmap::fromImage(image);
	QPainter painter(&px);
	QPen penHLines(QColor("#0e5a77"), 2, Qt::DotLine, Qt::FlatCap, Qt::RoundJoin);
	painter.setPen(penHLines);

	painter.drawRects(rects);
	image = px.toImage();

	auto text = QString(rectext);
	delete[] rectext;

	return text;
}
Exemplo n.º 4
0
QString Ocr::testOcr(QImage& image)
{
	tesseract::TessBaseAPI* api = new tesseract::TessBaseAPI();
	// Initialize tesseract-ocr with English, without specifying tessdata path

	if (api->Init((QDir::currentPath() + "/plugins").toStdString().c_str(), "eng")) {
		qCritical("Could not initialize tesseract");
	}

	//Pix* thresholded_image = api->GetThresholdedImage();

	api->SetImage(image.bits(), image.width(), image.height(), image.bytesPerLine() / image.width(), image.bytesPerLine());
	char* rectext = api->GetUTF8Text();
	qDebug("text: %s", rectext);

	QVector<QRect> rects;
	tesseract::PageIterator *iter = api->AnalyseLayout();
	while (iter->Next(tesseract::RIL_WORD)) {
		int left, top, right, bottom;

		iter->BoundingBox(
			tesseract::RIL_WORD,
			&left, &top, &right, &bottom
			);
		
		rects.push_back(QRect(left, top, right-left, bottom-top));
	}

	QPixmap px = QPixmap::fromImage(image);
	QPainter painter(&px);
	QPen penHLines(QColor("#0e5a77"), 2, Qt::DotLine, Qt::FlatCap, Qt::RoundJoin);
	painter.setPen(penHLines);

	painter.drawRects(rects);
	image = px.toImage();

	auto text = QString(rectext);

	api->End();
	delete[] rectext;

	return text;
}
Exemplo n.º 5
0
void MainWindow::on_botonKruskal_clicked()
{
    kruskal=new Kruskal(ciudades);
    kruskal->resolver();

    QString text="";
    for(int cont=0; cont<54; cont++){
        text=text+QString::number(kruskal->tablaK[cont][0])+"\t"+QString::number(kruskal->tablaK[cont][1])+"\n";
    }

    QPen penHLines(QColor("#00ff00"), 1, Qt::SolidLine, Qt::FlatCap, Qt::RoundJoin);
    painter->setPen(penHLines);
    for(int num2=0; num2<54; num2++){
        if(prim->ciudadesD[num2]->path!=-1)
        painter->drawLine(dijkstra->ciudadesD[num2]->nodo->punto.x(), dijkstra->ciudadesD[num2]->nodo->punto.y(),
                          dijkstra->ciudadesD[dijkstra->ciudadesD[num2]->path]->nodo->punto.x(),
                dijkstra->ciudadesD[dijkstra->ciudadesD[num2]->path]->nodo->punto.y());
    }
    ui->label->setPixmap(QPixmap::fromImage(*tmp));
    label->show();
    label->print(text);
}
Exemplo n.º 6
0
void MainWindow::pintarLineas()
{
    tmp=new QImage(ui->label->pixmap()->toImage());
    painter=new QPainter(tmp);
    QPen penHLines(QColor("#000000"), 1, Qt::SolidLine, Qt::FlatCap, Qt::RoundJoin);
    painter->setPen(penHLines);
    painter->drawLine(ciudades[0]->punto.x(), ciudades[0]->punto.y(),ciudades[2]->punto.x(), ciudades[2]->punto.y());

    painter->drawLine(ciudades[1]->punto.x(), ciudades[1]->punto.y(),ciudades[2]->punto.x(), ciudades[2]->punto.y());
    painter->drawLine(ciudades[1]->punto.x(), ciudades[1]->punto.y(),ciudades[4]->punto.x(), ciudades[4]->punto.y());

    painter->drawLine(ciudades[3]->punto.x(), ciudades[3]->punto.y(),ciudades[4]->punto.x(), ciudades[4]->punto.y());
    painter->drawLine(ciudades[3]->punto.x(), ciudades[3]->punto.y(),ciudades[5]->punto.x(), ciudades[5]->punto.y());

    painter->drawLine(ciudades[4]->punto.x(), ciudades[4]->punto.y(),ciudades[5]->punto.x(), ciudades[5]->punto.y());
    painter->drawLine(ciudades[4]->punto.x(), ciudades[4]->punto.y(),ciudades[6]->punto.x(), ciudades[6]->punto.y());

    painter->drawLine(ciudades[5]->punto.x(), ciudades[5]->punto.y(),ciudades[9]->punto.x(), ciudades[9]->punto.y());

    painter->drawLine(ciudades[6]->punto.x(), ciudades[6]->punto.y(),ciudades[7]->punto.x(), ciudades[7]->punto.y());

    painter->drawLine(ciudades[7]->punto.x(), ciudades[7]->punto.y(),ciudades[12]->punto.x(), ciudades[12]->punto.y());

    painter->drawLine(ciudades[8]->punto.x(), ciudades[8]->punto.y(),ciudades[13]->punto.x(), ciudades[13]->punto.y());
    painter->drawLine(ciudades[8]->punto.x(), ciudades[8]->punto.y(),ciudades[14]->punto.x(), ciudades[14]->punto.y());

    painter->drawLine(ciudades[9]->punto.x(), ciudades[9]->punto.y(),ciudades[10]->punto.x(), ciudades[10]->punto.y());
    painter->drawLine(ciudades[9]->punto.x(), ciudades[9]->punto.y(),ciudades[16]->punto.x(), ciudades[16]->punto.y());

    painter->drawLine(ciudades[10]->punto.x(), ciudades[10]->punto.y(),ciudades[11]->punto.x(), ciudades[11]->punto.y());

    painter->drawLine(ciudades[11]->punto.x(), ciudades[11]->punto.y(),ciudades[19]->punto.x(), ciudades[19]->punto.y());

    painter->drawLine(ciudades[12]->punto.x(), ciudades[12]->punto.y(),ciudades[13]->punto.x(), ciudades[13]->punto.y());
    painter->drawLine(ciudades[12]->punto.x(), ciudades[12]->punto.y(),ciudades[22]->punto.x(), ciudades[22]->punto.y());

    painter->drawLine(ciudades[13]->punto.x(), ciudades[13]->punto.y(),ciudades[14]->punto.x(), ciudades[14]->punto.y());

    painter->drawLine(ciudades[15]->punto.x(), ciudades[15]->punto.y(),ciudades[16]->punto.x(), ciudades[16]->punto.y());

    painter->drawLine(ciudades[16]->punto.x(), ciudades[16]->punto.y(),ciudades[27]->punto.x(), ciudades[27]->punto.y());

    painter->drawLine(ciudades[17]->punto.x(), ciudades[17]->punto.y(),ciudades[19]->punto.x(), ciudades[19]->punto.y());
    painter->drawLine(ciudades[17]->punto.x(), ciudades[17]->punto.y(),ciudades[27]->punto.x(), ciudades[27]->punto.y());

    painter->drawLine(ciudades[18]->punto.x(), ciudades[18]->punto.y(),ciudades[28]->punto.x(), ciudades[28]->punto.y());

    painter->drawLine(ciudades[19]->punto.x(), ciudades[19]->punto.y(),ciudades[20]->punto.x(), ciudades[20]->punto.y());

    painter->drawLine(ciudades[20]->punto.x(), ciudades[20]->punto.y(),ciudades[21]->punto.x(), ciudades[21]->punto.y());
    painter->drawLine(ciudades[20]->punto.x(), ciudades[20]->punto.y(),ciudades[32]->punto.x(), ciudades[32]->punto.y());

    painter->drawLine(ciudades[21]->punto.x(), ciudades[21]->punto.y(),ciudades[22]->punto.x(), ciudades[22]->punto.y());

    painter->drawLine(ciudades[22]->punto.x(), ciudades[22]->punto.y(),ciudades[23]->punto.x(), ciudades[23]->punto.y());

    painter->drawLine(ciudades[24]->punto.x(), ciudades[24]->punto.y(),ciudades[25]->punto.x(), ciudades[25]->punto.y());
    painter->drawLine(ciudades[24]->punto.x(), ciudades[24]->punto.y(),ciudades[27]->punto.x(), ciudades[27]->punto.y());

    painter->drawLine(ciudades[25]->punto.x(), ciudades[25]->punto.y(),ciudades[26]->punto.x(), ciudades[26]->punto.y());

    painter->drawLine(ciudades[26]->punto.x(), ciudades[26]->punto.y(),ciudades[45]->punto.x(), ciudades[45]->punto.y());
    painter->drawLine(ciudades[26]->punto.x(), ciudades[26]->punto.y(),ciudades[52]->punto.x(), ciudades[52]->punto.y());

    painter->drawLine(ciudades[27]->punto.x(), ciudades[27]->punto.y(),ciudades[28]->punto.x(), ciudades[28]->punto.y());

    painter->drawLine(ciudades[28]->punto.x(), ciudades[28]->punto.y(),ciudades[29]->punto.x(), ciudades[29]->punto.y());
    painter->drawLine(ciudades[28]->punto.x(), ciudades[28]->punto.y(),ciudades[30]->punto.x(), ciudades[30]->punto.y());

    painter->drawLine(ciudades[29]->punto.x(), ciudades[29]->punto.y(),ciudades[45]->punto.x(), ciudades[45]->punto.y());

    painter->drawLine(ciudades[30]->punto.x(), ciudades[30]->punto.y(),ciudades[31]->punto.x(), ciudades[31]->punto.y());
    painter->drawLine(ciudades[30]->punto.x(), ciudades[30]->punto.y(),ciudades[42]->punto.x(), ciudades[42]->punto.y());

    painter->drawLine(ciudades[31]->punto.x(), ciudades[31]->punto.y(),ciudades[32]->punto.x(), ciudades[32]->punto.y());

    painter->drawLine(ciudades[32]->punto.x(), ciudades[32]->punto.y(),ciudades[34]->punto.x(), ciudades[34]->punto.y());
    painter->drawLine(ciudades[32]->punto.x(), ciudades[32]->punto.y(),ciudades[40]->punto.x(), ciudades[40]->punto.y());

    painter->drawLine(ciudades[33]->punto.x(), ciudades[33]->punto.y(),ciudades[34]->punto.x(), ciudades[34]->punto.y());

    painter->drawLine(ciudades[34]->punto.x(), ciudades[34]->punto.y(),ciudades[35]->punto.x(), ciudades[35]->punto.y());
    painter->drawLine(ciudades[34]->punto.x(), ciudades[34]->punto.y(),ciudades[36]->punto.x(), ciudades[36]->punto.y());
    painter->drawLine(ciudades[34]->punto.x(), ciudades[34]->punto.y(),ciudades[37]->punto.x(), ciudades[37]->punto.y());

    painter->drawLine(ciudades[37]->punto.x(), ciudades[37]->punto.y(),ciudades[38]->punto.x(), ciudades[38]->punto.y());
    painter->drawLine(ciudades[37]->punto.x(), ciudades[37]->punto.y(),ciudades[39]->punto.x(), ciudades[39]->punto.y());

    painter->drawLine(ciudades[40]->punto.x(), ciudades[40]->punto.y(),ciudades[41]->punto.x(), ciudades[41]->punto.y());

    painter->drawLine(ciudades[42]->punto.x(), ciudades[42]->punto.y(),ciudades[43]->punto.x(), ciudades[43]->punto.y());
    painter->drawLine(ciudades[42]->punto.x(), ciudades[42]->punto.y(),ciudades[44]->punto.x(), ciudades[44]->punto.y());

    painter->drawLine(ciudades[43]->punto.x(), ciudades[43]->punto.y(),ciudades[46]->punto.x(), ciudades[46]->punto.y());
    painter->drawLine(ciudades[43]->punto.x(), ciudades[43]->punto.y(),ciudades[47]->punto.x(), ciudades[47]->punto.y());

    painter->drawLine(ciudades[45]->punto.x(), ciudades[45]->punto.y(),ciudades[46]->punto.x(), ciudades[46]->punto.y());

    painter->drawLine(ciudades[46]->punto.x(), ciudades[46]->punto.y(),ciudades[47]->punto.x(), ciudades[47]->punto.y());

    painter->drawLine(ciudades[47]->punto.x(), ciudades[47]->punto.y(),ciudades[48]->punto.x(), ciudades[48]->punto.y());

    painter->drawLine(ciudades[48]->punto.x(), ciudades[48]->punto.y(),ciudades[49]->punto.x(), ciudades[49]->punto.y());

    painter->drawLine(ciudades[49]->punto.x(), ciudades[49]->punto.y(),ciudades[50]->punto.x(), ciudades[50]->punto.y());

    painter->drawLine(ciudades[51]->punto.x(), ciudades[51]->punto.y(),ciudades[52]->punto.x(), ciudades[52]->punto.y());

    painter->drawLine(ciudades[52]->punto.x(), ciudades[52]->punto.y(),ciudades[53]->punto.x(), ciudades[53]->punto.y());
    ui->label->setPixmap(QPixmap::fromImage(*tmp));
}