V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
V2EX  ›  jeeyong  ›  全部回复第 7 页 / 共 48 页
回复总数  954
1 ... 3  4  5  6  7  8  9  10  11  12 ... 48  
❮ ❯
2022 年 10 月 2 日
回复了 jeeyong 创建的主题 › Python › sublime 代码提示会有很多没用的内容.
@jfcherng 他应该是 Sublime 的提示 和 Anaconda 在一起的.


@jfcherng 请问 safe Mode 如何设置.?
另外, 并不是所有的库都如此...
2022 年 9 月 28 日
回复了 jeeyong 创建的主题 › Python › [求助]关于 dicom 文件转存为 png 时灰度处理的问题.
@ysc3839 别的系统导出来的...


@laqow 解决了..一直是尝试转成 int 类型的, 改成 uin8 就得到期望的类型了..
但是至于为啥...我不懂.
2022 年 9 月 24 日
回复了 jeeyong 创建的主题 › Python › 如何提高 Python 数组操作性能.
结帖! 感谢中间提供帮助和建议的大佬们.

中间经历的几个需要反思的问题点.
1. 没用弄懂图片的格式相关知识的情况下, 盲目上手, 导致做了很多很多无效的计算.
2. 没有用好 numpy


附上源码
from numpy import maximum,uint8
from pydicom import dcmread
from PIL.Image import fromarray
from time import perf_counter
import numpy as np
import PIL
import time


start = time.time()
dcm = dcmread('dcm/aaa.dcm')
imageSources = dcm.ReferencedImageBoxSequence[0].BasicGrayscaleImageSequence[0]
imageData = imageSources.PixelData
# *** 下面这句是最重要和相对来说最耗时的
image = np.frombuffer(imageData, dtype=np.uint8).reshape(imageSources.Rows, imageSources.Columns, 2)

img = PIL.Image.fromarray(image, mode='LA')
img = img.convert('RGB')
img.save('test1.png')
print(time.time() - start)

总计用时 1.6S, numpy 果然强大.


@Xs0ul 谢谢! 另外, 我最后问的关于生成图片的问题, 是我弄错了, 我用两个完全不同部位的图片做的对比..
头部的 CT 结果轮廓很清晰, 腹部的, 看起来就不清楚了..纯粹是我粗心导致的错误.
2022 年 9 月 24 日
回复了 jeeyong 创建的主题 › Python › 如何提高 Python 数组操作性能.
@encro 存 jpg 会报错, 就没去管它了, 现存成 png, 解决问题再优化
2022 年 9 月 24 日
回复了 jeeyong 创建的主题 › Python › 如何提高 Python 数组操作性能.
@Xs0ul 嗯...208 是灰度, 4 是 alpha 我提高了 alpha 值, 255 - 原 alpha 值 也还是不如我期望的那张图那么清晰.
奇怪了...
2022 年 9 月 24 日
回复了 jeeyong 创建的主题 › Python › 如何提高 Python 数组操作性能.
@Xs0ul 元素对调有什么好方法吗?
就是我想尝试把 208 当成 Alpha 通道, 4 当成灰度, 解析一次图像
2022 年 9 月 24 日
回复了 jeeyong 创建的主题 › Python › 如何提高 Python 数组操作性能.
@Xs0ul 太着急了, 没粘好.
https://imgur.com/WWKXy9A
2022 年 9 月 24 日
回复了 jeeyong 创建的主题 › Python › 如何提高 Python 数组操作性能.
@Xs0ul Hey~`
这方法效率很高..
但是有个问题....
他显示出来的图片...如果是 LA 模式, 很浅. 黑色的几乎看不清楚
我尝试用循环把 Alpha 通道值修改为 255 - 原值.
结果图像感觉噪点又很多
LA 模式:
https://imgur.com/QmmmcX9

转为 RGBA 模式
https://imgur.com/GPtekhA

期望得到的结果:
https://imgur.com/undefined
2022 年 9 月 24 日
回复了 jeeyong 创建的主题 › Python › 如何提高 Python 数组操作性能.
@lucays 第三天....T_T
2022 年 9 月 24 日
回复了 jeeyong 创建的主题 › Python › 如何提高 Python 数组操作性能.
@Muniesa 老哥, 图完全看不清楚
2022 年 9 月 24 日
回复了 jeeyong 创建的主题 › Python › 如何提高 Python 数组操作性能.
@Cy86
@jdhao
@chashao
@paopjian
老哥们, 辛苦啊...
我现在是直接用真实的患者 CT 片子写..
不能外传....

另外, 我看有人已经上 pydicom 了...
另外我请教一下, 我现在处理的 dicom 格式不是通用的 dicom 格式...
是排版好之后的 dcm 文件.
很多信息不能直接获取..最重要的 pydicom.pixel_array 和 pixelData 是没有的..
我是通过 pydicom
dcm = pydicom.read_file(filePath)
imageInfo = dcm.ReferencedImageBoxSequence[0].BasicGrayscaleImageSequence[0]
这种方式获取的 pixelData 的 bytes
有人能科普一下这个问题吗?
2022 年 9 月 23 日
回复了 jeeyong 创建的主题 › Python › 如何提高 Python 数组操作性能.
@wcsjtu 我先尝试 numpy 的方案....再看预编译或者 jit 类的...
谢谢~
2022 年 9 月 23 日
回复了 jeeyong 创建的主题 › Python › 如何提高 Python 数组操作性能.
各位的代码, 够我消化一夜了....
太感谢了...太感谢了!
@hsfzxjy
@yoohwzy
@stein42
2022 年 9 月 23 日
回复了 jeeyong 创建的主题 › Python › 如何提高 Python 数组操作性能.
@dlsflh
我是直接写个 tensor 扔给 torch 跑,我知道它会自动用 SIMD 或者 CUDA (如果启动 gpu 的话)

@lmshl 这大哥的做法解释了你的疑问..
2022 年 9 月 23 日
回复了 jeeyong 创建的主题 › Python › 如何提高 Python 数组操作性能.
@stein42 卧槽卧槽, 果然大神多....
我需要消化一下代码...
这之前都没用过 numpy...感谢感谢..

另外请教一下,
buffer = bytes([208, 4]) * (width * height)
文件内容不只是 [208, 4] 还有其他的灰度值和通道值, 这一步不理解..
2022 年 9 月 23 日
回复了 jeeyong 创建的主题 › Python › 如何提高 Python 数组操作性能.
@threebr 我的理解是, python 要通过对应的接口和 numpy 通信, 而 numpy 本身对于下标赋值这种操作的过程是很复杂的.
这基本就是昨天看到的一篇文章的原话. 作者还列出了对应的处理过程, 因为是 C, 直接放弃阅读了..
2022 年 9 月 23 日
回复了 jeeyong 创建的主题 › Python › 如何提高 Python 数组操作性能.
@hsfzxjy 是吗? 一直很怕上 C 相关的东西...哈哈
nodejs 可以直接读数据库获取路径, 去转换完了写回对应字段...
解决问题来说, 应该这个方法是最快的..
但是不服气啊...60 秒和 2.3 秒的差距...
2022 年 9 月 23 日
回复了 jeeyong 创建的主题 › Python › 如何提高 Python 数组操作性能.
@yoohwzy
@lookStupiToForce 感谢回复..先尝试 np.stack 的用法...
再看 google 结果...
对..如果不用转换, 直接读取生成, 是正确的思路..只是当时没找到方法, 就先硬上了..
先解决,再优化~
2022 年 9 月 23 日
回复了 jeeyong 创建的主题 › Python › 如何提高 Python 数组操作性能.
@lizytalk 试过.. 仅限于 @jit 装饰. 一堆警告和报错.
主要是不支持一些方法. 包括不限于 numpy 的...
网上翻的教程, 所有的数组转 uint8 类型, 都是 numpy 直接干的...
其他我就不会了...有其他方法我也想试试.... 不用 numpy 转换, 或许可以直接上 pypy
2022 年 9 月 23 日
回复了 jeeyong 创建的主题 › Python › 如何提高 Python 数组操作性能.
@MoYi123
我读出来的 bytes 数据处理成 uint8 后. 是这样的形式:
[208, 4, 208, 4, 208, 4...196, 8]
不懂图像处理的知识, 我的理解就是, 一个灰度, 一个 Alpha 通道值(透明值?).
第一次处理数组是要把上面的数组, 改成如下形式: <- 暂且叫 生成数组阶段.
就是再赋值两次灰度..写入数组.构建成如下形式:

[208, 208, 208, 4, 208, 208, 208, 4.......]

再下一步就是把 208 这个灰度值变成 rgb 的形式.
然后再通过一个循环变成 pillow 支持的格式, 如下: <- 暂且叫 数组转换阶段吧.
[
[ [r, g, b, a], [r, g, b, a], [r, g, b, a], ],
[ [r, g, b, a], [r, g, b, a], [r, g, b, a], ],
[ [r, g, b, a], [r, g, b, a], [r, g, b, a], ],
]

我补充了点文字..你看一下能理解吗?
1 ... 3  4  5  6  7  8  9  10  11  12 ... 48  
❮ ❯
About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   927 Online   Highest 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 21ms · UTC 21:53 · PVG 05:53 · LAX 13:53 · JFK 16:53
♥ Do have faith in what you're doing.