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

石家庄seo北京网站seo优化排名

石家庄seo,北京网站seo优化排名,运维工程师的前景如何,什么系统做网站最安全文章目录 在最近的项目中,又碰到一个有意思的问题需要通过图像算法来解决。就是显微拍摄的到的医疗图像中,有时候目标物比较偏,也就是在图像的比较偏的位置,需要通过移动样本,将目标物置于视野正中央,然后再…

文章目录


在最近的项目中,又碰到一个有意思的问题需要通过图像算法来解决。就是显微拍摄的到的医疗图像中,有时候目标物比较偏,也就是在图像的比较偏的位置,需要通过移动样本,将目标物置于视野正中央,然后再次进行拍摄。

就类似于下面的图像:

基于这个需求,在图像上就需要使用图像算法进行判断(没有必要使用深度网络的时候就不要用,太浪费资源了)。

对于上面的图像,基本的处理逻辑是:

  1. 因为目标物是细胞,也就是图中的一个一个的圈圈,需求就是要让尽可能多的细胞位于图像正中央。
  2. 目标物的粘连比较少,所以基于阈值分割的基本逻辑应该是可以将所需要的目标物提取出来(这一块在python的opencv操作记录11——阈值分割这一篇已经讲过了)。
  3. 分割完之后再通过opencv提取轮廓的方法将轮廓提取出来。
  4. 提取完轮廓之后,对每个轮廓求外接矩形。
  5. 利用业务特性对相应的轮廓做一些过滤操作。
  6. 将多个矩形做一个聚类,这里可以有多种聚类方案,可以先聚类再筛选,也可以根据某个逻辑确定一个质心,然后再根据这个质心再做聚类。
  7. 然后就是调参工作了。

我自己的代码为:

int getCenter(cv::Mat img, cv::Rect& resultRect)
{cv::cvtColor(img, img, cv::COLOR_RGB2GRAY);// 阈值分割cv::threshold(img, img, 50, 255, cv::THRESH_BINARY);// 提取轮廓std::vector<cv::Mat> contours;cv::findContours(img, contours, cv::RETR_LIST, cv::CHAIN_APPROX_NONE);// 逐步聚类的方法std::vector<float> xs, ys;// 初始化质心float centroid_x = 0.0f, centroid_y = 0.0f;// 找到第一个质心,我这里是使用面积最大的作为第一个质心,代码没有贴上来int maxIndex = 0;float maxSocre = 0.0f;// 迭代计算质心for (int i = 0; i < contours.size(); i++){score = cv::contourArea(contours[i]);// 判断是一个有效区域if (score > threshold_score){cv::Rect rect = cv::boundingRect(contours[i]);// 判断是否离中心比较远, 第一次不做判断if (abs(rect.x + (rect.width / 2) - centroid_x) > centroidThresholdX){continue;}if (abs(rect.y + (rect.height / 2) - centroid_y) > centroidThresholdY){continue;}// 纳入下一次的质心计算xs.push_back(rect.x + rect.width / 2);ys.push_back(rect.y + rect.height / 2);float tempCenterX = 0.0f;for (int x = 0; x < xs.size(); x++){tempCenterX += xs[x];}centroid_x = tempCenterX / xs.size();float tempCenterY = 0.0f;for (int y = 0; y < ys.size(); y++){tempCenterY += ys[y];}centroid_y = tempCenterY / ys.size();}}for(int z = 0; z < xs.size(); z++){ if (xs[z] < minX){minX = xs[z];}if (xs[z] > maxX){maxX = xs[z];}if (ys[z] < minY){minY = ys[z];}if (ys[z] > maxY){maxY = ys[z];}}std::cout << "maxX:" << maxX << "minX:" << minX << "maxY:" << maxY << "minY:" << minY << std::endl;resultRect.x = minX;resultRect.y = minY;resultRect.width = maxX - minX;resultRect.height = maxY - minY;return 0;
}

最后的结果是:

调整的距离就是这个矩形的中央到整个图像的中央坐标了。

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

相关文章:

  • 如何降低网站的权重成都网站建设技巧
  • 企业网站建设代理为什么要建设学校网站
  • hdsyscms企业建站系统网站备案安全责任书是谁盖章
  • 花都网站建设信科网络苏州前程无忧官上做网站
  • 域名注册在那个网站好wordpress免费搭建博客
  • 建设银行广州招聘网站成都住建局官网报名被挤爆黑幕
  • 潍坊做网站哪个公司好页面设计模板简约
  • 宁波建网站选哪家好一点宾阳网站建设
  • 网站新闻 写法大连网络营销咨询服务
  • 做网站赚钱流量跨国网站浏览器
  • 58网站一起做网店网络空间设计方案
  • 网站建设开源wordpress设置投稿
  • 黄页网站建设黄页网站建设网站空间代理
  • 做网站送推广osCommerce购物网站架设全攻略
  • ps做图下载网站延吉网站网站建设
  • 凡科网站的排名做不上去网站后台seo优化如何做
  • 用ppt做网站方法保定 网站建设软件开发
  • 最专业网站建设哪家好潍坊网站开发weifangwangluo
  • 软件下载网站如何履行安全管理做推广如何引流
  • 做网站的那些高清图上哪里找网站开发语言太老
  • 湖北营销型网站建设费用顺德网站建设价位
  • 太原制作网站的公司龙华住房和建设局网站怎么无法登陆
  • 成都企业网站排名优化利用新冠消灭老年人
  • 网站的设计思想凡总创业网站
  • 宁波如何建网站沧州房产信息网
  • 绍兴做网站的精准数据营销方案
  • 成都都网站建设深圳 赢客创想网络技术股份有限公司 网站建设
  • 企业网站的视频页如何做苏州我可以网络科技有限公司
  • 龙岗做网站公司sql网站的发布流程
  • 深圳网站建设最好17做网店