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); }
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); }
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; }
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; }
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); }
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)); }