一个小程序出错了可是不知道问题在哪里 求好心人帮帮我
vtk吧
全部回复
仅看楼主
level 8
臭臭爸YY 楼主
拜托了!!!
会出现 debug error r6010 about() has been called
int main(int argc, char* argv[])
{
const int dim = 2;
typedef unsigned char PixelType;
typedef itk::Image< PixelType, dim > ImageType;
typedef itk::ImageFileReader< ImageType > ReaderType;
ReaderType::Pointer reader = ReaderType::New();
reader->SetFileName("C:\\Users\\zgb\\Desktop\\src.png" );
reader->Update();
typedef unsigned long LabelType;
typedef itk::ShapeLabelObject< LabelType, dim > LabelObjectType;
typedef itk::LabelMap< LabelObjectType > LabelMapType;
typedef itk::BinaryImageToShapeLabelMapFilter< ImageType, LabelMapType > ConverterType;
ConverterType::Pointer converter = ConverterType::New();
converter->SetInput( reader->GetOutput() );
converter->SetInputForegroundValue( 255 )
converter->Update();
typedef itk::ShapeLabelMapFilter< LabelMapType > ShapeFilterType;
ShapeFilterType::Pointer shape = ShapeFilterType::New();
shape->SetInput( converter->GetOutput() )
shape->Update();
LabelMapType::Pointer labelMap = shape->GetOutput();
for( unsigned int label=1; label<=labelMap->GetNumberOfLabelObjects(); label++ )
{
const LabelObjectType* labelObject = labelMap->GetLabelObject( label );
std::cout << label << "\t" << labelObject->GetPhysicalSize() << "\t" << labelObject->GetCentroid() << std::endl;
}
return 0;
}
2016年05月12日 12点05分 1
level 8
臭臭爸YY 楼主
各位吧神,万能的吧主,求指导。[泪]
2016年05月12日 12点05分 2
level 12
换张图片[吐舌]
2016年05月13日 00点05分 3
吧主 只有你回复我 你果然是万能哒 我先试试哈
2016年05月13日 01点05分
吧主你是神么[大拇指]
2016年05月13日 01点05分
吧神 您能告诉我 为什么会出现这种情况么?是不是因为我这张图片里的连通区域太小检测不到啊?
2016年05月13日 01点05分
吧神 我有个程序写了好久了 解决方案没问题 一运行就闪退 该有的输出也没有 您能帮我看一眼给点提示么? 拜托了
2016年05月13日 11点05分
level 8
臭臭爸YY 楼主
#include "itkImageFileReader.h"
#include "itkShapeLabelObject.h"
#include "itkLabelMap.h"
#include "itkBinaryImageToShapeLabelMapFilter.h"
int main(int argc, char * argv[])
{
/*if( argc != 3)
{
std::cerr << "usage: " << argv[0] << " input foreground" << std::endl;
std::cerr << " : " << std::endl;
exit(1);
}*/
const int dim = 2;
typedef unsigned char PixelType;
typedef itk::Image< PixelType, dim > ImageType;
// read the input image
typedef itk::ImageFileReader< ImageType > ReaderType;
ReaderType::Pointer reader = ReaderType::New();
reader->SetFileName("C:\\Users\\zgb\\Desktop\\I_want4.png");
typedef unsigned long LabelType;
typedef itk::ShapeLabelObject< LabelType, dim > LabelObjectType;
typedef itk::LabelMap< LabelObjectType > LabelMapType;
typedef itk::BinaryImageToShapeLabelMapFilter< ImageType, LabelMapType > ConverterType;
ConverterType::Pointer converter = ConverterType::New();
converter->SetInput( reader->GetOutput() );
converter->SetInputForegroundValue(255);
converter->Update();
LabelMapType::Pointer labelMap = converter->GetOutput();
for( unsigned int label=1; label<=labelMap->GetNumberOfLabelObjects(); label++ )
{
const LabelObjectType * labelObject = labelMap->GetLabelObject( label );
std::cout << label << "\t" << labelObject->GetPhysicalSize() << "\t" << labelObject->GetCentroid() << std::endl;
}
return 0;
}
2016年05月17日 05点05分 6
level 12
建议你先用一个圆试试,看下结果是不是在圆心。
2016年05月18日 00点05分 8
吧主,我第一张读的质心是对的。第二张就直接读不出来,我突然想到会不会是图片太大,分配的内存不够,所以直接没读进来~[疑问][疑问]吧主好人
2016年05月18日 02点05分
第一张图片很小~第二张很大
2016年05月18日 02点05分
level 12
我测试过了,你这张图有问题。
转换成单通道二值图像就可以了~
2016年05月18日 04点05分 9
吧主 我试试 我刚看到您的回复 一直以为您不会给回复了呢
2016年05月20日 01点05分
@臭臭爸YY 抱歉,好多时候实在是忙不过来[冷]~
2016年05月20日 01点05分
@rabbitbride 吧主 千万别这么说 您能帮我就很不错了 我真的非常感谢您 真的 我先找改变通道数的函数去
2016年05月20日 02点05分
@rabbitbride 我检查一下 我这张图的组分怎么会是4[黑线]不是rgb么咋还有个4个。。。用luminance不行[泪]
2016年05月20日 02点05分
level 12
vtkImageMapToRGBA
vtkImageMapToColors
vtkImageMapToWindowLevelColors
你接下来把这几个类搞明白就可以了~
2016年05月20日 23点05分 10
好嘞,吧神[花心]
2016年05月22日 08点05分
1