dcm影象轉成Mat資料
阿新 • • 發佈:2018-12-25
程式碼:
#include "stdafx.h" #include <stdlib.h> #include <iostream> //OPencv #include <opencv2/opencv.hpp> //DCMTK #include "dcmtk/config/osconfig.h" #include "dcmtk/dcmdata/dctk.h" #include "dcmtk/dcmimgle/dcmimage.h" #pragma comment(lib, "Netapi32.lib") #pragma comment(lib, "ws2_32.lib") int main(int argc, _TCHAR* argv[]) { std::string file_path= "File0001.dcm"; //dcm檔案 DicomImage *img = new DicomImage(file_path.c_str()); if (img->isMonochrome() && img->getStatus() == EIS_Normal && img != NULL) { if (img->isMonochrome()) { int nWidth = img->getWidth(); //獲得影象寬度 int nHeight = img->getHeight(); //獲得影象高度 Uint16 *pixelData = (Uint16*)(img->getOutputData(16)); //獲得16位的影象資料指標 std::cout << nWidth << ", " << nHeight << std::endl; if (pixelData != NULL) { IplImage *srcImage = cvCreateImageHeader(cvSize(nWidth, nHeight), IPL_DEPTH_16U, 1); cvSetData(srcImage, pixelData, nWidth*sizeof(unsigned short)); cv::Mat dst(srcImage); cv::imshow("image1", dst);*/ } } } cv::waitKey(0); delete img; return 0; }