资源简介
QT5.11.2+VS2017+OpenCV4.0的棋盘格生成小工具,包含exe和代码。exe运行需要安装必要的运行库(如vs2017运行库)。
代码片段和文件信息
#pragma execution_character_set(“utf-8“)
#include “create_checkboard.h“
#include
#include
#include
create_checkboard::create_checkboard(QWidget *parent)
: QMainWindow(parent)
{
ui.setupUi(this);
QDir dir;
directory = dir.currentPath();
ui.pathLabel->setText(directory);
// 连接信号槽
connect(ui.setPathBtn SIGNAL(clicked()) this SLOT(setPathBtn()));
connect(ui.generateBtn SIGNAL(clicked()) this SLOT(generateBtn()));
connect(ui.quitAction SIGNAL(triggered()) qApp SLOT(quit()));
connect(ui.aboutAction SIGNAL(triggered()) this SLOT(aboutAction()));
}
void create_checkboard::setPathBtn()
{
QFileDialog::Options options;
options |= QFileDialog::DontResolveSymlinks | QFileDialog::ShowDirsOnly;
QString dir = QFileDialog::getExistingDirectory(this
tr(“获得保存图像的路径“)
“./“
options);
if (!dir.isEmpty())
{
directory = dir;
ui.pathLabel->setText(directory);
}
}
void create_checkboard::generateBtn()
{
if (directory.isEmpty())
{
// 需要设置保存路径
QMessageBox::question(NULL “注意“ “请设置保存路径“ QMessageBox::Yes QMessageBox::Yes);
return;
}
int width = ui.widthSpin->value();
int height = ui.heightSpin->value();
int pixSize = ui.pixSizeSpin->value();
if (width < 2 || height < 2 || pixSize == 0)
{
QMessageBox::question(NULL “注意“ “请重新设置参数“ QMessageBox::Yes QMessageBox::Yes);
return;
}
// 图像大小,并初始化图片大小
int imageWidth = (width + 1)*pixSize;
int imageHeight = (height + 1)*pixSize;
cv::Mat image(cv::Size(imageWidth imageHeight) CV_8UC1);
int grayRowValue = 0;
int grayColValue = 0;
// 左上角为黑色棋盘格,相邻为白色,黑白间隔排列,以此类推
for (int i = 0; i < height +1; i++)
{
for (int j = 0; j < width +1; j++)
{
for (int singleBoardHeight = 0; singleBoardHeight < pixSize; singleBoardHeight++)
{
for (int singleBoardWidth = 0; singleBoardWidth < pixSize; singleBoardWidth++)
{
int w = i * pixSize + singleBoardWidth;
int h = j * pixSize + singleBoardHeight;
image.at(wh) = grayRowValue;
}
}
grayRowValue == 0 ? grayRowValue = 255 : grayRowValue = 0;
}
grayColValue == 0 ? grayColValue = 255 : grayColValue = 0;
grayRowValue = grayColValue;
}
// 生成保存的名称
QString fileName = directory+“/“+QString::number(width) + “-“ + QString::number(height) + “-“ + QString::number(pixSize)+“.jpg“;
std::string std_filename = (const char *)fileName.toLocal8Bit();
cv::imwrite(std_filenameimage);
QMessageBox::about(NULL “提醒“ fileName+“ 保存完成!“);
}
void create_checkboard::aboutAction()
{
QMessageBox::about(this “关于“ “欢迎大家关注我的博客,与我一起交流进步!\nCSDN:不吹牛不睡觉\n链接:https://blog.csdn.net/u012283902“);
}
- 上一篇:函数式swift 函数式编程中文版高清pdf
- 下一篇:单片机实验仿真50例
相关资源
-
opencv haar检测训练成功xm
l - ESP8266搭建MQTT客户端源码
- Qt 音乐播放器 实现歌词显示 网络播放
- LINUX 下QT电子书
- QT+VS点击按钮弹出新窗口的实现
- qt-vs-tools-msvc2015-2.0.0
- musicApp.rar
- opencv实现的手势识别,石头剪刀布的
- 基于opencv的手势识别程序,亲测可用
- 人脸识别系统设计-毕业设计
- Qt下的自定义图像显示控件
- 相机标定完整工程vs
- QT制作的QQ聊天室
- 基于opencv的绊线检测代码
- Qt帮助文档中文版264813
- OPENCV人眼检测
- QT下的小说阅读器
- 智能家居 环境温湿度采集系统
- Qt实现360安全卫士9.1(资源图片)
-
haarcascades人脸特征分类器xm
l文件 - Qt类关系图
- opencv实现只有xy方向平移的图像拼接算
- Game Programming Using QT.pdf
- Qt+Opencv-PCA人脸识别+视频
- 答题卡识别小程序
- qt 使用——(qt速成)
- qt opengl(after ver2.1) 渲染 nv12
- 海康摄像机Linux64SDK下QT预览实现
- QT 半透明窗口 面板
- qt下的modbus Tcp通讯程序
评论
共有 条评论