600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > ITK读取RGB图像像素值

ITK读取RGB图像像素值

时间:2020-11-05 13:26:04

相关推荐

ITK读取RGB图像像素值

/*这个程序接收输入参数作为文件路径, 读取指定的图片数据(RGB), 并显示指定位置的像素值。(这里是[0,0]位置) */#include "itkImage.h" #include "itkRGBPixel.h" #include "itkJPEGImageIOFactory.h"#include "itkImageFileReader.h" #include <iostream> using namespace std;int main(int, char * argv[]){ //声明一些参量类型 //指定图片像素类型为RGB,unsigned char,2维平面图 //通过指定的图像类型声明图像读取器 typedef itk::RGBPixel<unsigned char>PixelType;typedef itk::Image<PixelType, 2>ImageType;typedef itk::ImageFileReader<ImageType> ReaderType;//创建图像读取器 ReaderType::Pointer reader = ReaderType::New();itk::JPEGImageIOFactory::RegisterOneFactory();//从命令行参数获取文件路径,并设置给reader const char* filename = "test1.jpg";reader->SetFileName(filename);reader->Update();//声明图像object,并与读取器输出绑定 ImageType::Pointer image = ImageType::New();image = reader->GetOutput();//itk中访问图像数据需要通过Index,Index在这里理解成一个数组 //维数与图像维数对应 //并设置要访问的位置[0,0] ImageType::IndexType pixcelIndex;pixcelIndex[0] = 0;//列数 pixcelIndex[1] = 0;//行数 //获取图像的像素数据 PixelType pixel1 = image->GetPixel(pixcelIndex);PixelType::ValueType red = pixel1.GetRed();PixelType::ValueType green = pixel1.GetGreen();PixelType::ValueType blue = pixel1.GetBlue(); //输出数据,注意,itk中的像素数据需要由专门的模块来处理 cout << "get pixel at [0,0]:" << endl;cout << "R:" << itk::NumericTraits<PixelType::ValueType>::PrintType(red) << endl;cout << "G:" << itk::NumericTraits<PixelType::ValueType>::PrintType(green) << endl;cout << "B:" << itk::NumericTraits<PixelType::ValueType>::PrintType(blue) << endl;system("pause");return 0;}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。