EvilDicom图像已损坏

时间:2017-06-30 08:21:23

标签: c# image-processing dicom anonymize evil-dicom

我试图使用该库来匿名化dicom图像。 在某些情况下,它工作正常,但在其他情况下,最终图像已损坏。我的意思是,图像的像素是错误的,最终图像的string dir = @"C:\Users\Desktop\CT.dcm"; var dcmBytes = System.IO.File.ReadAllBytes(@dir); try { var dcm = EvilDICOM.Core.DICOMObject.Read(dcmBytes); var refName = new EvilDICOM.Core.Element.PersonName { FirstName = "", Tag = EvilDICOM.Core.Helpers.TagHelper.PATIENT_NAME }; dcm.ReplaceOrAdd(refName); dcm.Write(@"C:\Users\Desktop\CT2.dcm"); } catch(Exception ex) { throw new Exception("EXCEPTION: " + ex.Message); } 标签也发生了变化。 当我不对图像进行匿名化时,也会发生这种情况,我只是在新文件中读取和写入图像。

这是我的代码: // ------------------------------------------------ ---------------------

FileMetaInformationGroupLength

// --------------------------------------------- ------------------------

以下是我遇到问题的原始图片: https://www.dropbox.com/s/s5ase23jl9908jm/3DSlice1.dcm?dl=0

以下是原始图像和最终图像(损坏的图像)的屏幕截图。 https://www.dropbox.com/s/12liy3gbw7dkb4d/Image_corrupted.PNG?dl=0

我不知道像素数据发生了什么。但我看到module.exports = function(app) { var apigClientFactory = require('aws-api-gateway-client').default; var querystring = require('querystring'); var params = { //This is where any header, path, or querystring request params go. The key is the parameter named as defined in the API userId: '1234' }; var additionalParams = {}; app.get('*', function(req, res) { res.sendfile('./public/index.html'); }); app.post("/customerinfo", function(req, res) { console.log("name: " + req.body["customer_name"]); var body = { "async": true, "crossDomain": true, "url": "https://myurl.execute-api.us-west-2.amazonaws.com/staging/api", "method": "POST", "headers": { "cache-control": "no-cache" }, "data": querystring.stringify(req.body["customer_name"]) }; var apigClient = apigClientFactory.newClient({ apiKey: '1234', invokeUrl: 'https://myurl.execute-api.us-west-2.amazonaws.com/staging/api' }); >>>> apigClient.invokeApi(params, '/customerinfo', 'POST', additionalParams, body) .then(function(result) { // Add success callback code here. }).catch(function(result) { // Add error callback code here. }); }); }; 标签发生了变化。

1 个答案:

答案 0 :(得分:0)

使用传输语法1.2.840.10008.1.2.4.70压缩原始图像。输出图像用1.2.840.10008.1.2编码,这意味着未压缩。您需要在调用dcm.Write时检查传输语法中的这种更改是否正确应用。

或者可能是读取操作时传输语法已经改变。

在任何情况下,请确保传输语法的更改是正确的,它已正确完成并与DICOM标记保持一致。

我从未使用过Evil DICOM工具包,因此我可能无法帮助您使用代码。