Exemplo n.º 1
0
void ColibriMainWindow::on_fileButton_clicked()
{
	QString fileName = QFileDialog::getOpenFileName(this, tr("Open File"),
													mLastSettings.lastImagesDir,
													tr("Images (*.png *.PNG "
													   "*.xpm "
													   "*.jpg *.jpeg *.JPG *.JPEG "
													   "*.bmp *.BMP)"));
	if(fileName.isEmpty()) return;

	QFileInfo fi(fileName);
	if(!fi.exists())
	{
		QMessageBox::critical(NULL, tr("Image loading error"),
							  tr("File ") + fileName + tr(" does not exists."));
		return;
	}
	mLastSettings.lastImagesDir = fi.absolutePath();
	saveSettings();

	// load file
	IplImage * iplImage = cvLoadImage(fileName.toUtf8().data());
	if(!iplImage)
	{
		QMessageBox::critical(NULL, tr("Image loading error"),
							  tr("Could not load image ") + fileName);
		return;
	}

	computeImage(iplImage);

	tmReleaseImage(&iplImage);
}
Exemplo n.º 2
0
// display callback invoked when window needs to be redrawn
void onDisplay( ) {
    glClearColor(0.1f, 0.2f, 0.3f, 1.0f);
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // clear screen

	if(computeImage())
		glutPostRedisplay();
    glDrawPixels(screenWidth, screenHeight, GL_RGB, GL_FLOAT, image);
 
    glutSwapBuffers(); // drawing finished
}
Exemplo n.º 3
0
void ColibriMainWindow::on_grabTimer_timeout() {

    QPixmap desktopPixmap = QPixmap::grabWindow(
            //QApplication::activeWindow()->winId());
            QApplication::desktop()->winId());
   fprintf(stderr, "%s:%d: desktopImage=%dx%dx%d\n",
            __func__, __LINE__,
            desktopPixmap.width(), desktopPixmap.height(), desktopPixmap.depth());
   //desktopPixmap.save("/tmp/desktop.png");
    //QApplication::activeWindow()->show();

    // Crop where the window is

	fprintf(stderr, "%s:%d: curpos=%dx%d+%dx%d\n",
            __func__, __LINE__,
            m_grabRect.x(), m_grabRect.y(),
            m_grabRect.width(), m_grabRect.height());

    QImage desktopImage;
    desktopImage = ( desktopPixmap.copy(m_grabRect).toImage() );

	if(desktopImage.isNull()) {
		fprintf(stderr, "%s:%d: desktopImage is null !\n",
					__func__, __LINE__);

		return;
	}
	fprintf(stderr, "%s:%d: desktopImage=%dx%dx%d\n",
            __func__, __LINE__,
            desktopImage.width(), desktopImage.height(), desktopImage.depth());


	IplImage * iplImage = cvCreateImage(cvSize(desktopImage.width(), desktopImage.height()),
                                            IPL_DEPTH_8U, desktopImage.depth()/8);
	memcpy(iplImage->imageData, (char *)desktopImage.bits(), iplImage->widthStep*iplImage->height);

//	// We have to set the alpha flag
//	u8 * alpha = (u8 *) iplImage->imageData;

//	for(int pos = 3; pos <iplImage->widthStep*iplImage->height; pos+=4)
//	{
//		alpha[pos] = 255;
//	}
//	cvSaveImage("/dev/shm/unprocessed.png", iplImage);
	computeImage(iplImage);
//	cvSaveImage("/dev/shm/processed.png", iplImage);


    show();

	tmReleaseImage(&iplImage);
}