ITK读取RGB图像像素值
生活随笔
收集整理的這篇文章主要介紹了
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;
}
?
總結
以上是生活随笔為你收集整理的ITK读取RGB图像像素值的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: OpenCV测试程序
- 下一篇: 最近邻插值、双线性插值、双三次插值