编译器minGW32,release版本,大部分操作在线程循环里面更容易体现出来
1、网上有说opencv像素处理使用直接获取Mat对象的像素块的数据指针,例如
for (int row = 0; row < h; row++) {
uchar* uc_pixel = image.data + row * image.step;
for (int col = 0; col < w; col++) {
uc_pixel[col] = 255 - uc_pixel[col];
}
和直接像素操作
image.at<uchar>(i,j) = xx; 我发现差异不大;
我还是选择了第二种方法
在Mat赋值操作最好不要使用clone()
2、使用QString::Number()和QString(“%1”).arg(xx)这两种转换方式,我发现第二种效果比较好;
3、两种延时操作,都可以有效防止UI卡顿
Qt中关于一种网上流传延时方法Bug说明_c# tomsecssinceepoch_莫听穿林打叶声儿的博客-CSDN博客
连接面提供两种延时方法,最下面一种明显比第一种要高效;
4、关于串口,网口的数据高速通讯操作
有人喜欢使用Qt信号槽接收数据,我个人很不喜欢,我更喜欢使用单独线程去主动读取串口或网口数据,这样也做到后台数据和前台更新的数据分离,比如下面连接中就是使用线程主动读取串口数据案例;
艾德堡HP-100推拉力计,Qt串口、曲线经典应用(开源)_艾德堡数显拉力机软件-CSDN博客
5、如果有更高效的方法请在评论区留言……