Beispiel #1
0
bool task1(const cv::Mat& image) {
    cv::Mat manual, buildIn, diff, tmp;
    std::vector<cv::Mat> channels;

    scaleImage(image, manual, 2, 100);
    image.convertTo(buildIn, -1, 2, 100);
    cv::absdiff(manual, buildIn, diff);
    cv::split(diff, channels);

    std::cout << "Max difference element: ";
    for (VMit it = channels.begin(); it != channels.end(); ++it) {
        int max = *(std::max_element((*it).begin<uchar>(), (*it).end<uchar>()));
        std::cout << max << " ";
    }
    std::cout << std::endl;

    std::vector<cv::Mat> scales(5, cv::Mat());
    std::vector<cv::Mat> dst(2, cv::Mat());
    for (int i = 0; i < task1c; ++i) {
        scaleImage(image, scales[i], task1v[2 * i], task1v[2 * i + 1]);
    }

    concatImages(scales[0], scales[1], dst[0]);
    concatChannels(dst[0], dst[0]);

    concatImages(scales[2], scales[3], dst[1]);
    concatImages(dst[1], scales[4], dst[1]);
    concatChannels(dst[1], dst[1]);

    return cv::imwrite(PATH + "Task1Lena01.jpg", dst[0]) && cv::imwrite(PATH + "Task1Lena345.jpg", dst[1]);

}
Beispiel #2
0
void ImageWidget::updateImage(bool zoom, const QImage &image, bool valuesPresent[], int values[])
{
    if(zoom) {
        QImage imageNew = scaleImage(image);
        if(imageNew.isNull()) return;

#ifndef QT_NO_CONCURRENT
        QFuture<QImage> future = QtConcurrent::run(this, &ImageWidget::scaleImage, image);
        imageNew = future.result();
#else
        QImage imageNew = scaleImage(image);

#endif

        pixmap = QPixmap::fromImage(imageNew);
    } else {
        pixmap = QPixmap::fromImage(image);
    }
    for(int i=0; i<4; i++) {
        drawValues[i] = valuesPresent[i];
        if(drawValues[i]) geoValues[i] = values[i];
        else geoValues[i] = 0;
    }
    update();
}
void main(int argc, char *argv[])
{
  char header[512];
  unsigned char img[640*480*3], newimg[640*480*3];
  int bufflen, hdrlen; unsigned row=0, col=0, chan=0, pix; int i, j, k;
  double alpha=1.25;  unsigned char beta=25;

  if(argc < 2)
  {
      printf("Use: brighten inputfile\n");
      exit(-1);
  }

  // TEST CASE #0
  //
  // Basic PPM file read, scaling and bias test, and write-back
  //
  header[0]='\0';
  readppm(img, &bufflen, header, &hdrlen, &row, &col, &chan, argv[1]);

  alpha=1.25, beta =25;
  scaleImage(img, newimg, row, col, chan, alpha, beta);
  writeppm(newimg, bufflen, header, hdrlen, "brighter-1.25-25.ppm");

  alpha=1.5, beta =50;
  scaleImage(img, newimg, row, col, chan, alpha, beta);
  writeppm(newimg, bufflen, header, hdrlen, "brighter-1.5-50.ppm");

  //
  // END TEST CASE #0
  

}
Beispiel #4
0
void MainWindow::fitToWindow()
 {
     bool fitToWindow = ui->actionFitToWindow->isChecked();
     ui->scrollArea->setWidgetResizable(fitToWindow);
     ui->scrollArea->setWidgetResizable(false);
     if (!fitToWindow) {
         normalSize();
     }
     else
     {
         double ssh=sh*scaleFactor;
         double ssw=sh*scaleFactor;
         double sch=ui->scrollArea->height();
         double scw=ui->scrollArea->width();
         double mh=sch/ssh;
         double mw=scw/ssw;
         if (mh<mw)
         {
             scaleImage(mh);
         }
         else
         {
             scaleImage(mw);
         }
     }
     updateActions();
}
void LocMicView::wheelEvent(QWheelEvent* event)
{
	//std::cerr << "wheelEvent " << event->delta() << std::endl;
	
	if(event->delta() < 0) {
		scaleImage(1.0 / scaleStepFactor);
	} else {
		scaleImage(scaleStepFactor);
	}
	
	
	
	//QScrollArea::wheelEvent(event);
}
Beispiel #6
0
void ProtoWindow::zoomIn()
{
	scaleImage(1.25);

	this->imageLabel->update();
	updateUI();
}
Beispiel #7
0
void ProtoWindow::zoomOut()
{
	scaleImage(0.8);

	this->imageLabel->update();
	updateUI();
}
Beispiel #8
0
void ProtoWindow::normalSize()
{
	scaleImage(fittingSize("normalSize"));

	this->imageLabel->update();
	updateUI();
}
bool CameraVideoSurface::present (const QVideoFrame &frame)
{
    m_frame = frame;
    if (surfaceFormat().pixelFormat() != m_frame.pixelFormat() ||
            surfaceFormat().frameSize() != m_frame.size()) {
        stop();
        return false;
    } else {
        m_frame.map(QAbstractVideoBuffer::ReadOnly);
        frWidth = m_frame.width();
        frHeight = m_frame.height();
        int line = m_frame.bytesPerLine();
        // build QImage from frame
        m_completeImage = QImage(
                    m_frame.bits(),
                    frWidth, frHeight,
                    line,
                    m_frame.imageFormatFromPixelFormat(m_frame.pixelFormat()));
        m_frame.unmap();

        QImage dstImage = scaleImage(m_completeImage);

        m_frame = QVideoFrame(dstImage);

        // enlarge faces
        m_target->updateVideo();
        return true;
    }
}
Beispiel #10
0
/*
 * Aktionen, die ausgeführt werden müssen, wenn der 'zurück'-Knopf gedrückt wurde.
 */
void ProtoWindow::on_backPushButton_clicked()
{
	// Daten des "alten" Bildes müssen gespeichert werden.
	save();
		/*
		 * Textdatei erstellen, falls nicht vorhanden.
		 *
		 * Daten in Textdatei schreiben. Dabei werden die alten Daten für dieses Bild überschrieben.
		 * Die Daten werden in der folgenden Reihenfolge gespeichert:
		 * "&"Dateiname(mit Endung)$bildbeschreibung"$"x-Koordinate"%"y-Koordinate"%"Text"$"nächstes Quadrat..."&"
		 *
		 * Bis auf Weiteres wird der gesamte Inhalt der Datei neu gespeichert.
		 */

	// current-Counter eins runterzaehlen, damit das naechste Bild angezeigt wird
	if (this->currentIndex-1 < 0) {
		this->currentIndex = this->dirVec.size()-1;
	} else {
		this->currentIndex = (this->currentIndex-1) % (this->dirVec.size());
	}
	QString fileName = this->dirVec[currentIndex];

	showNextImage((this->curDir.absoluteFilePath(fileName)));

	scaleImage(fittingSize("on_backPushButton_clicked"));
	updateUI();
}
bool RenderThemeSymbian::paintRadio(RenderObject* o, const RenderObject::PaintInfo& i, const IntRect& r)
{
    if (!m_radioButtonOn) {
        m_radioButtonOn = Image::loadPlatformResource("radioButtonOn");
        m_radioButtonOff = Image::loadPlatformResource("radioButtonOff");
    }    
    paintButtonDecorations(o, i, r);
    MScrollView* wv = scrollView(i);
    // don't scale the checkbox if scalingFactor is 100% or  we are in the process of scaling another image
    if (wv->scalingFactor() <= 100  || m_bitmapScaler) {
        i.context->drawImage(isChecked(o)?m_radioButtonOn:m_radioButtonOff,r);
    }
    // use the cached scaled image if it has the same scaling factor
    else if (wv->scalingFactor() == (isChecked(o) ? m_scalingForRadioOn : m_scalingForRadioOff)) {
        i.context->drawImage(isChecked(o) ? m_scaledRadioOn : m_scaledRadioOff, r);
    }
    // scale
    else {
        scaleImage(isChecked(o) ? ERadioOn : ERadioOff, wv->scalingFactor());
        if (wv->scalingFactor() == (isChecked(o) ? m_scalingForRadioOn : m_scalingForRadioOff)) {
            i.context->drawImage(isChecked(o) ? m_scaledRadioOn : m_scaledRadioOff, r);
        }
        else {        
            i.context->drawImage(isChecked(o)?m_radioButtonOn:m_radioButtonOff,r);
        }
    }
    return false;
}
Beispiel #12
0
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    default_scale = 1;
    current_scale = 1;
    image.load(":/aliceA.png");
    scaled = image;
    files_names = QStringList();
    pImage_lbl = new QLabel();
    pImage_lbl->setAlignment(Qt::AlignCenter);
    ui->imageArea->setWidget(pImage_lbl);
    ui->imageArea->setBackgroundRole(QPalette::NoRole);

    loadListOfFiles();

    setAcceptDrops(true);

    connect(&interpret, SIGNAL(ready(QImage)), this, SLOT(updateImage(QImage)));
    connect(ui->gammaSlider, SIGNAL(sliderReleased()), this, SLOT(refreshGamma()));
    connect(ui->zoomSlider, SIGNAL(sliderReleased()), this, SLOT(scaleImage()));
    connect(ui->filesList, SIGNAL(itemSelectionChanged()), this, SLOT(restoreDefaultScale()));
    connect(ui->filesList, SIGNAL(currentTextChanged(QString)), this, SLOT(updateImage(QString)));

    updateImage("aliceA.png");
}
Beispiel #13
0
void ScrollRedDotLabel::zoomOut()
{
    if(ZoomOutBool)
    {
        scaleImage(0.8);
    }
}
Beispiel #14
0
void ScrollRedDotLabel::zoomIn()
{
    if(ZoomInBool)
    {
        scaleImage(1.25);
    }
}
Beispiel #15
0
void MainWindowView::backSelected()
{
    QString newFile = m_parent->copyFile(m_ui->backKurl);
    m_ui->backKurl->setText(m_ui->backKurl->url().fileName());
    QPixmap image(newFile);
  	m_ui->pixLabel->setPixmap(scaleImage(image, 100));
    emit changed();
}
Beispiel #16
0
const QPixmap & CImgButton::image( const QString & name, qint64 & cacheKey ) const
{
    if ( m_picsSz.contains( cacheKey ) )
        return *m_picsSz[ cacheKey ];
    const QPixmap & pm = scaleImage( name );
    cacheKey = pm.cacheKey();
    return pm;
}
void SmartScrollArea::fitToWindow(bool checked) {
	fittingwin=checked;
	if (checked)
		scaleLabelToFit();
	else
		// restore to the previous zoom factor
		scaleImage(1);
}
void ImageWidget::zoomIn()
{
    if(m_scaleFactor > 3)
    {
        return;
    }
    scaleImage(1.25);
}
Beispiel #19
0
void ProtoWindow::actualSize()
{
	this->scaleFactor = 1.0;
	scaleImage(1.0);

	this->imageLabel->update();
	updateUI();
}
Beispiel #20
0
void PreviewWidget::wheelEvent(QWheelEvent *event){
	if (!preViewer->pixmap()) return;
	if(event->modifiers()==Qt::ControlModifier){
		float numDegrees = event->delta() / 8.0f;
		float numSteps = numDegrees / 15.0f;
		scaleImage(pow(1.4,numSteps));
		event->accept();
	} else QScrollArea::wheelEvent(event);
}
Beispiel #21
0
 void MainWindow::zoomOut()
 {
 if( ui->actionFitToWindow->isChecked() == true)
    {
       ui->actionFitToWindow->setChecked(false);
       //fitToWindow();
    }
     scaleImage(0.95);
 }
Beispiel #22
0
static QImage prepareSurface(QImage img, int w, int h)
{
  img = scaleImage(img, w, h);

  // slightly larger, to accomodate for the reflection
  int hs = h * 2;
  int hofs = h / 3;

  // offscreen buffer: black is sweet
  QImage result(hs, w, QImage::Format_RGB32);  
  result.fill(0);

  // transpose the image, this is to speed-up the rendering
  // because we process one column at a time
  // (and much better and faster to work row-wise, i.e in one scanline)
  for(int x = 0; x < w; x++)
    for(int y = 0; y < h; y++)
      result.setPixel(hofs + y, x, img.pixel(x, y));

  // create the reflection
  int ht = hs - h - hofs;
  int hte = ht;
  for(int x = 0; x < w; x++)
    for(int y = 0; y < ht; y++)
    {
      QRgb color = img.pixel(x, img.height()-y-1);
      int a = qAlpha(color);
      int r = qRed(color)   * a / 256 * (hte - y) / hte * 3/5;
      int g = qGreen(color) * a / 256 * (hte - y) / hte * 3/5;
      int b = qBlue(color)  * a / 256 * (hte - y) / hte * 3/5;
      result.setPixel(h+hofs+y, x, qRgb(r, g, b));
    }

#ifdef PICTUREFLOW_BILINEAR_FILTER
  int hh = BILINEAR_STRETCH_VER*hs;
  int ww = BILINEAR_STRETCH_HOR*w;
  result = scaleImage(result, hh, ww);
#endif

  return result;
}
Beispiel #23
0
void MainWindowView::fileSelected()
{
    QString newFile = m_parent->copyFile(m_ui->fileKurl);
    m_ui->fileKurl->setText(m_ui->fileKurl->url().fileName());
    QPixmap image(newFile);
  	m_ui->itemLabel->setPixmap(scaleImage(image, 100));
    
    Q_ASSERT(m_ui->treeView->selectionModel()->hasSelection());
    QModelIndex idx = m_ui->treeView->selectionModel()->selectedIndexes().first();
    QStandardItem* selectedItem = m_model->itemFromIndex(idx);
    selectedItem->setData(m_ui->fileKurl->text(),ThemeModel::PathRole);
    selectedItem->setText(m_ui->fileKurl->text());
}
Beispiel #24
0
void MainWindow::fitToWindow() {
    if (!imageLabel->pixmap()) {
        return;
    }

    double factor = qMin(
                ui->scrollArea->width()/((double)inputImage->width()),
                ui->scrollArea->height()/((double)inputImage->height()));
    if (factor > 1) {
        factor = 1;
    }
    scaleImage(factor);
}
void rescalethread::run()
{
    //this is the routine that will run when the thread is triggered by start() method in the parent

    for(int index=0;index<imageFilesList.count();index++)
    {
        //call the method to scale image, pass the current filename from the list
        scaleImage(QDir::toNativeSeparators(imageFilesList.at(index)), index);
    }

    //re-implemented finished signal emited when all the image resizing was done succesfully
    emit finished();

}
int MainWindow::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
    _id = QMainWindow::qt_metacall(_c, _id, _a);
    if (_id < 0)
        return _id;
    if (_c == QMetaObject::InvokeMetaMethod) {
        switch (_id) {
        case 0: loadImage(); break;
        case 1: scaleImage(); break;
        default: ;
        }
        _id -= 2;
    }
    return _id;
}
void ClassifiedViewer::setTestImage(QString imageFile)
{
  m_image = QImage(imageFile);

  // convert image to grayscale
  m_grayscaleImage = QImage(m_image.width(), m_image.height(), m_image.format());
  for (int h=0; h<m_image.height(); h++){
    for (int w=0; w<m_image.width(); w++){
      m_grayscaleImage.setPixel(w, h, toGray(m_image.pixel(w, h)));
    }
  }
  scaleImage();

  drawScene();
}
Beispiel #28
0
void MainWindowView::setUi(PairsThemeEditor *theme)
{
	m_pt = theme;
	m_path = m_pt->path();
	m_ui->titleEdit->setText(theme->title());
	m_ui->authorEdit->setText(theme->author());
	m_ui->versionEdit->setText(theme->version());
	m_ui->dateEdit->setDate(QDate::fromString(theme->date(),"d/M/yyyy"));
	m_ui->maintypeBox->setCurrentIndex(theme->mainType()-1);
	m_ui->descriptionEdit->setText(theme->description());
	m_ui->backKurl->setText(theme->backImage());
	QPixmap image(m_path +'/'+theme->backImage());
	m_ui->pixLabel->setPixmap(scaleImage(image, 100));
	m_ui->fileKurl->setStartDir(KUrl(theme->path()));
	m_ui->backKurl->setStartDir(KUrl(theme->path()));
}
Beispiel #29
0
void CvWidget::updateImage(const cv::Mat &image)
{
	m_mutex.lock();
	m_invalid = image.empty();
	if(m_invalid) {
		m_image = cv::Mat();
		update();
		m_mutex.unlock();
		return;
	}
	
	cv::cvtColor(image, m_image, CV_BGR2RGB);
	scaleImage();
	update();
	m_mutex.unlock();
}
void ImageWin::wheelEvent(QWheelEvent *event)
{
    QLabel::wheelEvent(event);

    for (EventVec::const_iterator it = _eventvec.begin(); it != _eventvec.end(); it++)
    {
        if ((*it)->procWheel(this, event))
            return;
    }

    QPoint cursor_pos = QCursor::pos();
    QPoint local_original_pos = this->mapFromGlobal(cursor_pos);

    int delta = event->delta();
    double _delta = 1.0 + delta/1000.0;
    scaleImage(_delta);
}