1. 程式人生 > >dcm影象轉成Mat資料

dcm影象轉成Mat資料

程式碼:


#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;
}