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

改变图像灰度级别

首先,对原始图像 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)

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

相关推荐
新缸中之脑21 分钟前
Google Stitch 产品设计实测
人工智能
Slow菜鸟7 小时前
AI学习篇(三) | AI效率工具指南(2026年)
人工智能·学习
北京软秦科技有限公司7 小时前
AI审核如何助力合规取证?IACheck打造环境检测报告电子存证与法律风险防控新路径
大数据·人工智能
qq_359716237 小时前
openpi使用过程中相关问题
人工智能·深度学习·机器学习
minhuan8 小时前
医疗AI智能体:从数据到关怀人文设计:告别冰冷精准,构建有温度的诊疗交互.131
人工智能·ai智能体·智能体的人文设计·医疗ai人文设计·构建医疗ai智能体
Promise微笑8 小时前
驾驭AI引用:Geo优化中的内容评分机制与实战策略深度解析
人工智能
ai生成式引擎优化技术9 小时前
全球唯一四元结构底层架构问世:TSPR-WEB-LLM-HIC v2.0 终结大模型投毒与幻觉的终极技术范式
人工智能
听你说329 小时前
伊萨推出 ROBBI 360 协作机器人焊接工作站 简化自动化焊接部署流程
人工智能·机器人·自动化
weixin_408099679 小时前
【实战对比】在线 OCR 识别 vs OCR API 接口:从个人工具到系统集成该怎么选?
图像处理·人工智能·后端·ocr·api·图片文字识别·文字识别ocr