当前位置: 首页 > news >正文

眉山网站建设哪家好wordpress爆路径

眉山网站建设哪家好,wordpress爆路径,网站建设 价格,opencart做的网站目录 1、介绍2、实现方法2.1 算法实现过程2.2 模拟采集流程 3、总结4、代码展示 1、介绍 在机器视觉的开发中,现在有很多通过电机去做相机的聚焦调节,对比手工调节,自动调节效果更好,而且其也能满足设备自动的需求,尤…

目录

  • 1、介绍
  • 2、实现方法
    • 2.1 算法实现过程
    • 2.2 模拟采集流程
  • 3、总结
  • 4、代码展示

1、介绍

在机器视觉的开发中,现在有很多通过电机去做相机的聚焦调节,对比手工调节,自动调节效果更好,而且其也能满足设备自动的需求,尤其在一些高倍成像的环境下应用场景更广泛,图像清晰度是衡量图像质量的一个重要的指标,手动调焦的过程是通过人为去判定图像的清晰度,调节镜头的焦距,使得图像从模糊到清洗,再到模糊的过程,确定清洗度的峰值,自动调焦就是通过算法对采集的每一张图像的清晰度进行评价,最终给出图像清晰的峰值,从而确定调焦获取的焦距最佳。
常见的图像清晰度评价一般都是基于梯度的方法,本文主要介绍Brenner梯度法。
Brenner梯度法.jpg
本节使用了30张不同清晰度的图像来模拟相机采图时从对焦模糊到清晰再到模糊的过程。

2、实现方法

2.1 算法实现过程

void MainWindow::AutoFocus(HObject ho_Image)
{HObject  ho_ImagePart00, ho_ImagePart20;HObject  ho_ImageSub, ho_ImageResult, ho_ImagePart01, ho_ImagePart10;HObject  ho_ImageSub1, ho_ImageResult1, ho_ImageSub2, ho_ImageResult2;HTuple  hv_I, hv_Width, hv_Height, hv_WindowID;HTuple  hv_Value, hv_Deviation;try{GetImageSize(ho_Image,&hv_Width,&hv_Height);CropPart(ho_Image, &ho_ImagePart00, 0, 0, hv_Width, hv_Height-2);ConvertImageType(ho_ImagePart00, &ho_ImagePart00, "real");CropPart(ho_Image, &ho_ImagePart20, 2, 0, hv_Width, hv_Height-2);ConvertImageType(ho_ImagePart20, &ho_ImagePart20, "real");SubImage(ho_ImagePart20, ho_ImagePart00, &ho_ImageSub, 1, 0);MultImage(ho_ImageSub, ho_ImageSub, &ho_ImageResult, 1, 0);Intensity(ho_ImageResult, ho_ImageResult, &hv_Value, &hv_Deviation);double d=hv_Deviation.D();QString strDev=QString::number(d,'f',3);ui->labDev->setText(strDev);//记录最大偏差值if(hv_PreDeviation<hv_Deviation){hv_PreDeviation=hv_Deviation;}}catch(HalconCpp::HException &except){qDebug()<<except.ProcName().Text()<<endl;qDebug()<<except.ErrorMessage().Text()<<endl;qDebug()<<except.ErrorCode()<<endl;}
}

如Brenner算法的公式所示,首先将图像转换成real类型,然后对图像进行图像差处理,然后进行图像乘积,最后获得平均值及偏差,把偏差作为清晰度的评价参数

2.2 模拟采集流程

这里创建一个线程,然后使用延时的定时器,从文件夹中依次读取30张图像,每张图像进行Brenner算法处理。
线程定义如下:

    camera = new CameraCtrl();liveThread = new QThread();camera->moveToThread(liveThread);connect(liveThread,&QThread::finished,camera,&QObject::deleteLater);connect(this,&MainWindow::ContinuousGrab,camera,&CameraCtrl::HandleContinuousGrab);liveThread->start();

然后线程开始后进行连续读取图像处理流程

//读取图像并调用Brenner算法函数
void CameraCtrl::HandleContinuousGrab()
{    HTuple  hv_I;HObject  ho_Image;    for (hv_I=1; hv_I<=30; hv_I+=1){ReadImage(&ho_Image, ("E:/Qt_Test/AutoFacus/Buddha/"+hv_I)+".png");Delay_MSec(tInter);emit hobjectReady(ho_Image);if(isFocus==true){emit hobjectFocus(ho_Image);}}
}

其中定义延时定时器

void CameraCtrl::Delay_MSec(unsigned int msec)
{QEventLoop loop;//定义一个新的事件循环QTimer::singleShot(msec, &loop, SLOT(quit()));//创建单次定时器,槽函数为事件循环的退出函数loop.exec();//事件循环开始执行,程序会卡在这里,直到定时时间到,本循环被退出
}

3、总结

一个好的评价函数需要具有单峰性,无偏性,灵敏性,常见的图像清晰度评价的算法有多种,比如Brenner梯度法、Tenegrad梯度法、laplace梯度法、方差法、能量梯度法等等,本节只介绍了Brenner梯度法,目前反馈的Brenner梯度法效果较好,以后有机会会介绍一下其他的方法。
5.AutoFacus.PNG

4、代码展示

本小例程的代码放到我的开源gitte项目里,欢迎一起学习,也希望能收获你的小星星。
AutoFacus源码

http://www.yayakq.cn/news/289836/

相关文章:

  • 听完米课做的网站php简易企业网站源码
  • 周易网站建设企业网站产品内页优化
  • php网站超市源码下载wordpress统计和谷歌不同
  • 大埔做网站移动网站二级域名m开头怎么做
  • 台州市住房和城乡建设厅网站东莞市网站建设怎么样
  • php网站开发技术 pdf网站备案主体信息变更
  • 长沙网站建设icp备外链吧发布seo
  • 乐清 网站建设自媒体可做外链网站
  • 网站管理密码网上商城什么意思
  • 杨凌网站建设设计师网站导航青年帮
  • 比较好的设计网站有哪些企业专属网页
  • 做海购的网站深圳宝安区怎么找服务
  • 做企业网站 asp的cms系统哪个好威海建设集团的网站是什么
  • 手机app wap网站模板下载wordpress 图片优化
  • 网站建设的验收网站多久才会被收录
  • 成品网站软件大全下载wordpress自定义背景颜色
  • 徐州h5模板建站天天网站
  • 沈阳网站建设024w长春免费网站制作
  • 网站建设设计平台网页设计板式要求
  • 辅助网站建设wordpress 手机端分开
  • 系统开发必须遵守的原则有哪些seo 网站推广
  • 网站建设hyioi域名注册万网
  • 腾网站建设莱芜信息港金点子招聘
  • 代码家的干货网站网站后天添加文章不显示
  • 移动端网站建设的方案高唐网页定制
  • 技术网站建设高端网站设计技术分析
  • 长治哪里能找到做网站的技术员网站单页别人是怎么做的
  • 网站首页site不到 a5如何做营销推广
  • 电商网站建设规划上海网络推广工资
  • 做二维码签到的网站抚顺市 网站建设