图像目标区域质心计算
在matlab中,可以通过直接编程的方法来计算图像目标区域的质心[6],也可以通过专用的质心函数( regionprops() )达到同样的目的[7]。
然而,在VTK中并没有找到专门用于计算图像目标区域质心的类,唯有通过ITK来实现。下面是主要的实现代码。
QList <QPoint3D> calculateRegionCentroid(vtkImageData *data)
{QList < QPoint3D > centroids; // QPoint3D是仿照QPoint(不支持浮点数)而定义的一个类,支持浮点数if ( !data )return centroids;double spacing[3];data->GetSpacing( spacing );itk::VTKImageToImageFilter<UCharImageType>::Pointer vtk2itkConnector // 将VTK图像转换为ITK图像= itk::VTKImageToImageFilter< UCharImageType>::New();BinaryImageToLabelMapFilterType::Pointer binaryImageToLabelMapFilter= BinaryImageToLabelMapFilterType::New();LabelMapToLabelImageFilterType::Pointer labelMapToLabelImageFilter= LabelMapToLabelImageFilterType::New();LabelGeometryImageFilterType::Pointer labelGeometryImageFilter= LabelGeometryImageFilterType::New();vtk2itkConnector->SetInput( data );binaryImageToLabelMapFilter->SetInput( vtk2itkConnector->GetOutput() );labelMapToLabelImageFilter->SetInput( binaryImageToLabelMapFilter->GetOutput());labelGeometryImageFilter->SetInput( labelMapToLabelImageFilter->GetOutput() );// These generate optional outputs.labelGeometryImageFilter->CalculatePixelIndicesOn();labelGeometryImageFilter->CalculateOrientedBoundingBoxOn();labelGeometryImageFilter->CalculateOrientedLabelRegionsOn();labelGeometryImageFilter->Update();LabelGeometryImageFilterType::LabelsType allLabels = labelGeometryImageFilter->GetLabels();LabelGeometryImageFilterType::LabelsType::iterator allLabelsIt;for( allLabelsIt = allLabels.begin(); allLabelsIt != allLabels.end(); allLabelsIt++ ) {LabelGeometryImageFilterType::LabelPixelType labelValue = *allLabelsIt;if ( (int)labelValue > 0 ) {double x = labelGeometryImageFilter->GetCentroid( labelValue )[0];double y = labelGeometryImageFilter->GetCentroid( labelValue )[1];centroids.append( QPoint3D( x * spacing[0], y * spacing[1], 0 ) );}}binaryImageToLabelMapFilter->SetInput( NULL );labelMapToLabelImageFilter->SetInput( NULL );labelGeometryImageFilter->SetInput( NULL );vtk2itkConnector->SetInput( NULL );return centroids;
}
参考资料
[1]图像处理之计算二值连通区域的质心
[2]图形图像基本处理之——一个非常容易理解的图像求质心代码
[3]Image processing -Algorithm to calculate centroids of white space in binary image
[4]how to find the centroid of a binary image?
[5]图像目标质心快速搜索算法
[6]MATLAB中求图像中某一区域的质心
[7]regionprops函数中centroid求质心,其质心评定原理?
图像目标区域质心计算相关推荐
- python如何做四象图_Python使用四个坐标点来剪切图像目标区域的最小外接矩形,python,利用,对,图片,进行,裁剪...
在图像裁剪操作中,opencv和pillow两个库都具有相应的函数,但是这两个库中的函数仅仅能对与图片平行的矩形进行裁剪操作,如果想要对目标的最小外接矩形进行裁剪该如何操作呢?如下所示: 具体处理该问 ...
- matlab如何手动选择图像目标区域,如何用MATLAB实现感兴趣区域ROI的选取
描述 感兴趣区域 感兴趣区域(Regions of Interest,ROI)这一概念,是指图像中最能引起用户兴趣.最能表现图像内容的区域.感兴趣区域(Regions of Interest,ROI) ...
- matlab单个像素面积,我用MATLAB计算出了图像目标区域的像素点个数,请问知道了目标区域的像素点怎么计算目标区域的面积?...
满意答案 下面是一个简单的计算轮廓包含起来的像素点的个数的程序: %% step 1 clear all clc I=imread('test.bmp');%读入图片 bwI=im2bw(I,0.5) ...
- 基于python+opencv的图像目标区域自动提取
向AI转型的程序员都关注了这个号???????????? 机器学习AI算法工程 公众号:datayx 一.提取纸张中的内容 一张照片中的感兴趣区域总是沿着x,y,z三个轴都有一定倾斜(如下图),要 ...
- 利用OpenCV对图像倾斜矩形目标区域进行固定大小裁剪
文章目录 目的 效果展示 为什么要固定大小裁剪? 代码及解释 原始文件 代码 代码解释 ① 主程序 ② ReadTxt() 函数 ③ rotate() 函数 目的 这篇博客主要介绍如何使用 OpenC ...
- matlab频域滤波处理,手动滤波,图像去网格背景:频域中手动选择目标区域进行滤波,滤掉噪声,灵活地达到理想的效果。
目录 一.原理简介 二.现有方法 三.代码实现 四.测试结果图 一.原理简介 主要思路为:通过傅里叶变换,将图像显示在频率域中,通过观察频谱图,如果了解频谱图与原图之间的关联,可以较为容易地发现噪声在 ...
- C#联合Halcon用于判断图像前景/背景,若前景目标区域连通域个数超越某阈值,则展开评价;否则不计入评价
//用于判断图像前景,若前景目标区域连通域个数超越某阈值,则展开评价:否则不计入评价HOperatorSet.Decompose3(ho_Image, out ho_R, out ho_G, out ...
- 利用opencv进行圆形标志提取和质心计算
利用opencv进行圆形标志提取和质心计算 最近跟着老师做项目,需要对图片中拍摄的圆形标志点进行检测和提取,查了一些资料和博客,记录一下过程.实际拍摄的图片如图所示: 图片处理过程的大概思路是: 1. ...
- OpenCV后投影,利用阈值函数分割指定区域生成掩膜,通过直方图分布查找其他图像相同区域。
一.API函数 void mixChannels(const Mat* src,int nsrc,Mat* dst ,int ndst,const int* fromTo,size_t npairs) ...
最新文章
- 论文:Multi-Objective Modified Grey Wolf Optimizer for Optimal Power Flow-最优潮流
- linux 日志服务器简单用
- [转载] 推荐的C++书籍以及阅读顺序
- Java 8 中的 java.util.Optional
- [Python] 字典 update()函数:在字典中更新 (或加入) 键值对
- VMwareESX上的SCOM控制台无法正常运行
- java 设置启动参数设置_1.java程序启动参数配置
- 更换tomcat 地址栏图标
- 原来这就是公文写作领导讲话稿万能模板(1)
- ASP.NET 实现简单的注册界面(使用asp控件)
- JDK1.8帮助文档 chm格式中英文
- 适用于 Windows 7 SP1 和 Windows Server 2008 R2 SP1 的扩展安全更新(ESU)许可准备程序包
- 我的世界服务器登录显示motd,[信息]ColorMOTD —— 究极Motd插件,外带反压测[1.7-1.8]...
- 一个 Duang~ 的CSS3动画
- 竟有比双十一更令人发指的福利……
- json和ajax的使用
- linux cfs时间,Linux调度的实现(CFS)——虚拟时间计算
- java 头尾 队列_java总结之 链表实现队列
- linux login as,PuTTY登录后SSH提示login as怎么回事?
- containerd对接harbor
热门文章
- 智能车 PID 调试
- Weblogic12C概述及安装
- 走进Web3万链互联:跨链跨层、锁定+铸造与哈希时间锁定
- springboot el表达式
- Python文本整理案例分析:《全唐诗》文本整理
- 空间计量xsmle命令遇到(3200)error,
- 如何创造财富——How to Make Wealth
- xjar 对Spring-Boot JAR 包加密运行工具
- 辐射3游戏登录是提示计算机丢失xlive.dll文件,win10系统辐射3提示丢失xlive.dll怎么办...
- java欧拉函数_欧拉函数(总结)