代码拉取完成,页面将自动刷新
#include "skeletondialog.h"
#include "ui_skeletondialog.h"
SkeletonDialog::SkeletonDialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::SkeletonDialog)
{
ui->setupUi(this);
}
SkeletonDialog::~SkeletonDialog()
{
delete ui;
}
void SkeletonDialog::on_buttonBox_accepted()
{
int width=ui->widthSlider->value();
int height=ui->heightSlider->value();
int px=ui->XlineEdit->text().toInt();
int py=ui->YlineEdit->text().toInt();
int structType=0;
if(ui->structcB->currentIndex()==0){
structType=MORPH_RECT;
}else if(ui->structcB->currentIndex()==1){
structType=MORPH_ELLIPSE;
}else if(ui->structcB->currentIndex()==2){
structType=MORPH_CROSS;
}
//获取结构元素
Mat structureElement = getStructuringElement(structType, Size(width, height), Point(px, py));
Mat tot=image.clone();
//将图像转化为灰度图处理
cvtColor(tot,tot,CV_BGR2GRAY);
//初始化目标图像
Mat dst=Mat::zeros(image.rows,image.cols,CV_8UC1);
//判断图像中是否还有不为0的点
while(countNonZero(tot)!=0){
Mat temp=tot.clone();
//开运算
erode(temp, temp, structureElement);
dilate(temp, temp, structureElement);
//与之前结果相加
dst=dst|(tot-temp);
//腐蚀运算
erode(tot, tot, structureElement);
}
cvtColor(dst,dst,CV_GRAY2BGR);
emit sendImage(dst);
}
void SkeletonDialog::receiveImage(Mat src){
image = src;
}
void SkeletonDialog::on_heightSlider_valueChanged(int value)
{
ui->label_height->setNum(value);
}
void SkeletonDialog::on_widthSlider_valueChanged(int value)
{
ui->label_width->setNum(value);
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。