【数字图像处理】改变图像灰度级别

改变图像灰度级别

首先,对原始图像 O O O进行灰度级量化:

q = int ⁡ ( O 2 i ) × 2 i , q=\operatorname{int}\left(\frac{O}{2^{i}}\right) \times 2^{i}, q=int(2iO)×2i,

灰度级别256,128,64,32,16,8,4,2 对应 i = 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 i=0,1,2,3,4,5,6,7 i=0,1,2,3,4,5,6,7。

例如,

  • 灰度级别为2时,原始图像中属于[0,128)的值被量化为0,属于[128, 256)的值被量化为128。

  • 灰度级别为4时,原始图像中属于[0, 64)的值被量化为0,属于[64,128)的值被量化为64,属于[128,192)的值被量化为128,属于[192, 256)的值被量化为192.

然后将灰度值范围变换到[0,255]:

q = int ⁡ ( 255 × q max ⁡ ( O ) ) . q=\operatorname{int}\left(255 \times \frac{q}{\max (O)}\right). q=int(255×max(O)q).

cpp 复制代码
import cv2 as cv
import numpy as np

img = cv.imread('blurry_moon.tif', cv.IMREAD_GRAYSCALE)


print(np.max(img))
# 灰度级别: 256、128、64、32;16、8、4、2
for i in range(8):
    img_q = (img / (2 ** i)).astype(np.uint8) # 保留前8-i比特
    img_q = img_q * (2 ** i)
    img_q=img_q / np.max(img_q) * 255  # [0-255]
    img_q=img_q.astype(np.uint8)

    cv.imwrite('level{}.jpg'.format(i), img_q)

思考:改变图像灰度级别与压缩量化的区别?

相关推荐
liulanba17 小时前
AI Agent技术完整指南 第三部分:监控与管理
人工智能
火山引擎开发者社区18 小时前
火山引擎发布系列《AI 安全白皮书》,构筑AI云原生可信基座
人工智能·安全·火山引擎
TonyLee01718 小时前
pytorch深度学习训练随机种子设置
人工智能·pytorch·深度学习
蓑雨春归18 小时前
2025 AI Coding实践总结 - AI Coding工具真的好用吗?
人工智能·ai编程
IT·小灰灰18 小时前
大模型API成本优化实战指南:Token管理的艺术与科学
人工智能·python·数据分析
Mintopia18 小时前
⚙️ AI冲击下的职场新物种:超级个体
人工智能·llm·aigc
HaiLang_IT18 小时前
基于卷积神经网络的棉花品种智能识别系统研究
人工智能·神经网络·cnn
云说智树18 小时前
AI Agent重构制造业:从技术概念到车间实景的落地革命
人工智能·重构
KG_LLM图谱增强大模型18 小时前
OntoMetric:破解ESG报告难题的“大模型+本体知识图谱”新范式,准确率提升10倍
人工智能·大模型·知识图谱
90后小陈老师18 小时前
自律APP开发规划测评,个人感觉chatGPT最佳Claude其次
人工智能·chatgpt·ai编程