⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 segment.cpp

📁 une tres bonne fenetre
💻 CPP
字号:
#include "segment.h"
#include "image.h"
QWizardPage *segment::createIntroPage()
 {
     QWizardPage *page = new QWizardPage;
     page->setTitle(qApp->tr("Introduction"));
     page->setSubTitle(qApp->tr("<br>cette application vous parmet de s間menter cette image ... "));

	 QLabel *label1=new QLabel();
	 label1->setPixmap(*pixmap);

     QVBoxLayout *layout = new QVBoxLayout;
     layout->addWidget(label1);
     page->setLayout(layout);

     return page;
 }

QWizardPage *segment::createinfoPage()
 {
    QWizardPage *page = new QWizardPage;
	page->setTitle(qApp->tr("Pr閠raitement "));
    page->setSubTitle(qApp->tr("<br> SVP,introduite les filtres a appliquer ."));

	median=new QCheckBox("le filtre M閐ian");
	median->setChecked(true);

	QVBoxLayout *lay_med=new QVBoxLayout;
	lay_med->addWidget(median);

	QGroupBox *Median=new QGroupBox();
	Median->setLayout(lay_med);

	gaussian=new QCheckBox("le filtre Gaussien");
	gaussian->setChecked(true);

	QVBoxLayout *lay_gau=new QVBoxLayout;
	lay_gau->addWidget(gaussian);

	QGroupBox *Gaussien=new QGroupBox();
	Gaussien->setLayout(lay_gau);

	passehaut=new QCheckBox("le filtre PasseHaut");
	passehaut->setChecked(true);

	QVBoxLayout *lay_pas=new QVBoxLayout;
	lay_pas->addWidget(passehaut);

	QGroupBox *Passehaut=new QGroupBox();
	Passehaut->setLayout(lay_pas);

	QFormLayout *layout = new QFormLayout;
	layout->addWidget(Median);
	layout->addWidget(Gaussien);
	layout->addWidget(Passehaut);

	label=new QLabel;
	label->setPixmap(*pixmap);

	QHBoxLayout *layouth=new QHBoxLayout;
	layouth->addWidget(label);
	layouth->addLayout(layout);
     
    page->setLayout(layouth);

	connect(button(NextButton), SIGNAL(clicked() ), this, SLOT(Contour()));

    return page;
 }
QWizardPage *segment::createcontourPage()
 {
	
	QWizardPage *page = new QWizardPage;
	page->setTitle(qApp->tr("Contour "));
    page->setSubTitle(qApp->tr("<br> SVP, chosi le centre de votre cercle, le rayon et la couleur de conteur"));

	image=new QImage(QSize(128,128),QImage::Format_RGB32);
	image->fill(qRgb(255,0,0));
	
    color=new QPushButton(QIcon(QPixmap().fromImage(*image)),qApp->tr("la color de contour"));
	QObject::connect(color,SIGNAL(clicked()),this,SLOT(changeColor()));

	painter=new paint(pixmap->width(),pixmap->height(),"tmp3.png",*coleur);

	spinbox1=new QSpinBox();
	spinbox1->setStatusTip(tr("la longeur de rayon de cercle"));
	spinbox1->setMinimum(5);
	spinbox1->setMaximum(300);
	spinbox1->setValue(20);

	QFormLayout *layout = new QFormLayout;
	layout->addWidget(color);
	layout->addWidget(spinbox1);

	QLabel *label=new QLabel;
	label->setPixmap(*pixmap);

	QHBoxLayout *layouth=new QHBoxLayout;
	layouth->addWidget(painter);
	layouth->addLayout(layout);
     
    page->setLayout(layouth);

	connect(button(NextButton), SIGNAL(clicked() ), this, SLOT(Contour()));

    return page;
 }

QWizardPage *segment::createConclusionPage()
 {
     QWizardPage *page = new QWizardPage;
     page->setTitle(qApp->tr("Confirmation"));
     page->setSubTitle(qApp->tr("vous avez choisi de s間menter l'image suivante <br>avec la courbe choisi dans cette image  ... "));

	 label1=new QLabel();
	 
	 QVBoxLayout *layout = new QVBoxLayout;
     layout->addWidget(label1);
	 
     page->setLayout(layout);

	 connect(button(NextButton), SIGNAL(clicked() ), this, SLOT(Contour()));
	 
     return page;
 }
void  segment::changeColor()
{
	*coleur=QColorDialog::getColor(Qt::red,this);
	image->fill(qRgb(coleur->red(),coleur->green(),coleur->blue()));
	painter->setPenColor(*coleur);
	color->setIcon(QPixmap().fromImage(*image));
}
int valeur_max(int x,int y,int w,int h)
{
	int f,l;
	if(x<w-x)		f=x;
	else			f=w-x;
	if(y<h-y)		l=y;
	else			l=h-y;
	if(f>l)			return f;
	else			return l;
}
void  segment::Contour()
{
	if(currentId()==2)		
	{	
		QImage *imag=new QImage(pixmap->toImage());
		if(median->isChecked())		RImage::mediansans(imag);
		if(gaussian->isChecked())	RImage::gaussiensans(imag);
		if(passehaut->isChecked())	RImage::passehaut(imag);
		imag->save("tmp.png");
		painter->openImage("tmp.png");
	}
	else if(currentId()==3)
	{
		int x,y;
		painter->saveImage("tmp2.png");
		QImage *imag=new QImage("tmp2.png");
		if(!RImage::recuperxy(imag,x,y,*coleur))
		{
			QMessageBox::critical(this,tr("impossible"),tr("une courbe fermer SVP ! ! !"));
			back();
			painter->openImage("tmp.png");
		}
		else
		{
			RImage::courbe_initial(imag,x,y,spinbox1->value(),*coleur);
			const QImage inter(*imag);
			label1->setPixmap(pixmap->fromImage(inter));
		}
	}
	
		
}
segment::segment(QPixmap filename, QWidget *parent):QWizard(parent)
{
	//setOption(HaveHelpButton, true);
   
	p=parent;
	pixmap=new QPixmap(filename);
	pixmap->save("tmp3.png");
	coleur=new QColor(255,0,0);
	addPage(createIntroPage());
    addPage(createinfoPage());
	addPage(createcontourPage());
    addPage(createConclusionPage());
	
	setWindowTitle(tr("Segmenter l'image"));
    
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -