小编mf *_* mf的帖子

当我使用dcmtk时,为什么要从2 ^ 15中减去我的dicom图像的像素值?

我正在使用dcmtk来读取dicom图像,我对新样本有以下属性:

(0028,0004) Photometric Interpretation: MONOCHROME2
(0028,0010) Rows: 512
(0028,0011) Columns: 512
(0028,0030) Pixel Spacing: 0.4688\0.4688
(0028,0100) Bits Allocated: 16
(0028,0101) Bits Stored: 16
(0028,0102) High Bit: 15
(0028,0103) Pixel Representation: 1
(0028,0106) Smallest Image Pixel Value: 0
(0028,0107) Largest Image Pixel Value: 2732
(0028,1050) Window Center: 1366
(0028,1051) Window Width: 2732
Run Code Online (Sandbox Code Playgroud)

我使用getOutputData(16)来读取int16_t数据.令我感到惊讶的是,因为接近-1*(2 ^ 16)的值是负值,当我将值减去2 ^ 15时,一切似乎都可以,我可以看到图像!:-(

现在我有两个问题:

  1. 为什么我要减去2 ^ 15的值,它会好吗?图像上没有可用的填充值!
  2. getOutputData的文档中,它讲的是渲染的像素数据总是无符号的..当我的图像数据被签名时,这意味着什么,因为(0028,0103)属性对我说了什么?如果这种方法不正确,那么我可以通过dcmtk获得真实数据吗?

c++ imaging dicom

2
推荐指数
1
解决办法
4245
查看次数

如何在Core图像中通过CIFilter更改最小值或最大值?

我正在iOS中绘制几个灰度图像.灰度图像的值具有最小值和最大值,即对于范围内的8位值[41,244].

我想改变最小值或最大值.我想知道如何在此列表中设置过滤器以更改最小值以及如何在此列表中设置过滤器以更改最大值?

也许以下绘图会很好看:

[1.读取原始灰度数据] - > [2.创建CGImageRef] - > [3.在GPU中加载参考]

到目前为止,在iOS 6中可以实时应用GPU中的过滤器.操作1或2对我来说非常慢,因为在一秒钟内我应该绘制100张图像.所以我需要在GPU中使用CIFilter.我知道如何过滤图像.但是什么过滤器可以完成我的工作?

一些示例代码对我有好处.

image-processing objective-c grayscale ios6 cifilter

1
推荐指数
1
解决办法
2033
查看次数