void draw(SkCanvas* canvas,
           const SkRect& rect,
           const SkSize& deviceSize,
           SkPaint::FilterLevel filterLevel,
           SkImageFilter* input = NULL) {
     SkRect dstRect;
     canvas->getTotalMatrix().mapRect(&dstRect, rect);
     canvas->save();
     SkScalar deviceScaleX = SkScalarDiv(deviceSize.width(), dstRect.width());
     SkScalar deviceScaleY = SkScalarDiv(deviceSize.height(), dstRect.height());
     canvas->translate(rect.x(), rect.y());
     canvas->scale(deviceScaleX, deviceScaleY);
     canvas->translate(-rect.x(), -rect.y());
     SkMatrix matrix;
     matrix.setScale(SkScalarInvert(deviceScaleX),
                     SkScalarInvert(deviceScaleY));
     SkAutoTUnref<SkImageFilter> imageFilter(
         SkMatrixImageFilter::Create(matrix, filterLevel, input));
     SkPaint filteredPaint;
     filteredPaint.setImageFilter(imageFilter.get());
     canvas->saveLayer(&rect, &filteredPaint);
     SkPaint paint;
     paint.setColor(0xFF00FF00);
     SkRect ovalRect = rect;
     ovalRect.inset(SkIntToScalar(4), SkIntToScalar(4));
     canvas->drawOval(ovalRect, paint);
     canvas->restore(); // for saveLayer
     canvas->restore();
 }
void kuwaharaFilter::videoFilter(const string &src_path, const string &dst_path) {
    
    VideoCapture v_reader = VideoCapture(src_path.c_str());
    
    double reszie_ratio = 1.0;
    
    if ( v_reader.isOpened() ) {
        
        Mat temp;
        v_reader >> temp;
        
        resizeMat(temp, reszie_ratio);
        
        VideoWriter v_writer = VideoWriter(dst_path.c_str(), CV_FOURCC('P','I','M','1'), 30, temp.size());
        
        while (v_reader.grab()) {

            resizeMat(temp, reszie_ratio);
            
            temp = imageFilter(temp, 3);
            
            temp.convertTo(temp, CV_8UC3);
            
            v_writer.write(temp);
            v_reader >> temp;

        }
        
        v_writer.release();
    
    }
Example #3
0
// This detector detects that image filter phase of the pixel pipeline receives the correct value.
static void install_detector_image_filter(SkPaint* drawPaint) {
    sk_sp<SkColorFilter> colorFilter(make_detector_color_filter());
    sk_sp<SkImageFilter> imageFilter(
        SkColorFilterImageFilter::Make(std::move(colorFilter),
                                       sk_ref_sp(drawPaint->getImageFilter())));
    drawPaint->setImageFilter(std::move(imageFilter));
}
Example #4
0
 void draw(SkCanvas* canvas, const SkRect& rect, const SkBitmap& bitmap,
           const SkMatrix& matrix, SkFilterQuality filter) {
     SkAutoTUnref<SkImageFilter> imageFilter(
         SkImageFilter::CreateMatrixFilter(matrix, filter));
     SkPaint paint;
     paint.setImageFilter(imageFilter.get());
     canvas->saveLayer(&rect, &paint);
     canvas->drawBitmap(bitmap, 0, 0);
     canvas->restore();
 }
Mat kuwaharaFilter::imageFileFilter(const string &img_path, int iterations) {
    
    Mat src_img = imread(img_path.c_str());
    
    src_img.convertTo(src_img, CV_64FC3);
    src_img /= 255.0;
    
    
    return imageFilter(src_img, iterations);
}
/*!
   \brief Execute a file dialog and render the plot to the selected file

   \param plot Plot widget
   \param documentName Default document name
   \param sizeMM Size for the document in millimeters.
   \param resolution Resolution in dots per Inch (dpi)

   \return True, when exporting was successful
   \sa renderDocument()
*/
bool QwtPlotRenderer::exportTo( QwtPlot *plot, const QString &documentName,
     const QSizeF &sizeMM, int resolution )
{       
    if ( plot == NULL )
        return false;
    
    QString fileName = documentName;

    // What about translation 

#ifndef QT_NO_FILEDIALOG
    const QList<QByteArray> imageFormats =
        QImageWriter::supportedImageFormats();
        
    QStringList filter;
#ifndef QT_NO_PRINTER
    filter += QString( "PDF " ) + tr( "Documents" ) + " (*.pdf)";
#endif
#ifndef QWT_NO_SVG 
    filter += QString( "SVG " ) + tr( "Documents" ) + " (*.svg)";
#endif
#ifndef QT_NO_PRINTER
    filter += QString( "Postscript " ) + tr( "Documents" ) + " (*.ps)";
#endif
    
    if ( imageFormats.size() > 0 )
    {
        QString imageFilter( tr( "Images" ) );
        imageFilter += " (";
        for ( int i = 0; i < imageFormats.size(); i++ )
        {
            if ( i > 0 )
                imageFilter += " ";
            imageFilter += "*."; 
            imageFilter += imageFormats[i];
        }   
        imageFilter += ")";
        
        filter += imageFilter;
    }   
    
    fileName = QFileDialog::getSaveFileName(
        NULL, tr( "Export File Name" ), fileName,
        filter.join( ";;" ), NULL, QFileDialog::DontConfirmOverwrite );
#endif  
    if ( fileName.isEmpty() )
        return false;

    renderDocument( plot, fileName, sizeMM, resolution );

    return true;
}   
Example #7
0
void MainWindow::exportDocument()
{
#ifndef QT_NO_PRINTER
    QString fileName = "bode.pdf";
#else
    QString fileName = "bode.png";
#endif

#ifndef QT_NO_FILEDIALOG
    const QList<QByteArray> imageFormats =
        QImageWriter::supportedImageFormats();

    QStringList filter;
    filter += "PDF Documents (*.pdf)";
#ifndef QWT_NO_SVG
    filter += "SVG Documents (*.svg)";
#endif
    filter += "Postscript Documents (*.ps)";

    if ( imageFormats.size() > 0 )
    {
        QString imageFilter( "Images (" );
        for ( int i = 0; i < imageFormats.size(); i++ )
        {
            if ( i > 0 )
                imageFilter += " ";
            imageFilter += "*.";
            imageFilter += imageFormats[i];
        }
        imageFilter += ")";

        filter += imageFilter;
    }

    fileName = QFileDialog::getSaveFileName(
        this, "Export File Name", fileName,
        filter.join( ";;" ), NULL, QFileDialog::DontConfirmOverwrite );
#endif

    if ( !fileName.isEmpty() )
    {
        QwtPlotRenderer renderer;

        // flags to make the document look like the widget
        renderer.setDiscardFlag( QwtPlotRenderer::DiscardBackground, false );
        renderer.setLayoutFlag( QwtPlotRenderer::KeepFrames, true );

        renderer.renderDocument( d_plot, fileName, QSizeF( 300, 200 ), 85 );
    }
}
Example #8
0
void LevelOneMuChart::exportLevelOnePlotToImage()
{

#ifndef QT_NO_PRINTER
    QString fileName = "MuChartOneLevel.pdf";
#else
    QString fileName = "MuChartOneLevel.png";
#endif

#ifndef QT_NO_FILEDIALOG
    const QList<QByteArray> imageFormats =
            QImageWriter::supportedImageFormats();

    QStringList filter;
    filter += tr("PDF Documents (*.pdf)");
#ifndef QWT_NO_SVG
    filter += tr("SVG Documents (*.svg)");
#endif
    filter += tr("Postscript Documents (*.ps)");

    if (imageFormats.size() > 0)
    {
        QString imageFilter(tr("Images ("));
        for (int i = 0; i < imageFormats.size(); i++)
        {
            if (i > 0)
                imageFilter += " ";
            imageFilter += "*.";
            imageFilter += imageFormats[i];
        }
        imageFilter += ")";

        filter += imageFilter;
    }

    fileName = QFileDialog::getSaveFileName(
                this, tr("Export File Name"), fileName,
                filter.join(";;"), NULL, QFileDialog::DontConfirmOverwrite);
#endif
    if (!fileName.isEmpty())
    {
        QwtPlotRenderer renderer;
        renderer.setDiscardFlag(QwtPlotRenderer::DiscardBackground, false);

        renderer.renderDocument(this, fileName, QSizeF(300, 200), 85);
    }
}
void igramIntensity::on_pushButton_clicked()
{
    QSettings set;
    QString path = set.value("mirrorConfigFile").toString();
    QFile fn(path);
    QFileInfo info(fn.fileName());
    QString dd = info.dir().absolutePath();
    const QList<QByteArray> imageFormats = QImageWriter::supportedImageFormats();
    QStringList filter;
    if ( imageFormats.size() > 0 )
    {
        QString imageFilter( tr( "Images" ) );
        imageFilter += " (";
        for ( int i = 0; i < imageFormats.size(); i++ )
        {
            if ( i > 0 )
                imageFilter += " ";
            imageFilter += "*.";
            imageFilter += imageFormats[i];
        }
        imageFilter += ")";

        filter += imageFilter;
    }
    QString fName = QFileDialog::getSaveFileName(0,
        tr("Save stats plot"), dd + "//intensity.jpg",filter.join( ";;" ));


    if (fName.isEmpty())
        return;

    const QSizeF size = this->size();
    const QRect imageRect = QRect(0,0,size.width(),size.height());

    QImage image( imageRect.size(), QImage::Format_ARGB32 );


    QPainter painter( &image );
    QwtPlotRenderer renderer;
    this->render( &painter);
    painter.end();

    image.save( fName, QFileInfo( fName ).suffix().toLatin1() );
}
Example #10
0
void plotter::save()
{
	QString fileName = "distrib.svg";
	const QList<QByteArray> imageFormats =
		 QImageWriter::supportedImageFormats();

	QStringList filter;
	filter += "SVG Documents (*.svg)";
	filter += "PDF Documents (*.pdf)";
	filter += "Postscript Documents (*.ps)";
	if ( imageFormats.size() > 0 )
	{
		 QString imageFilter("Images (");
		 for ( int i = 0; i < imageFormats.size(); i++ )
		 {
			 if ( i > 0 )
					imageFilter += " ";
			 imageFilter += "*.";
			 imageFilter += imageFormats[i];
		 }
		 imageFilter += ")";

		 filter += imageFilter;
	}

	fileName = QFileDialog::getSaveFileName(
					this, "Export File Name", fileName,
					filter.join(";;"), NULL, QFileDialog::DontConfirmOverwrite);

	if ( !fileName.isEmpty() )
	{
		 QwtPlotRenderer renderer;
		 renderer.setDiscardFlag(QwtPlotRenderer::DiscardBackground, false);
		 renderer.renderDocument(&plot, fileName, plot.size(), 85);//QSizeF(300, 200)
	}
}