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

改变图像灰度级别

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

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

相关推荐
AC赳赳老秦10 分钟前
供应链专员提效:OpenClaw自动跟踪物流信息、更新库存数据,异常自动提醒
java·大数据·服务器·数据库·人工智能·自动化·openclaw
脑极体15 分钟前
从Token消耗到DAA增长,AI价值标尺正在重构
人工智能·重构
csdn小瓯18 分钟前
LangGraph自适应工作流路由机制:从关键词匹配到智能决策的完整实现
人工智能·fastapi·langgraph
QYR-分析26 分钟前
高功率飞秒激光器行业发展现状、市场机遇及未来趋势分析
大数据·人工智能
AI医影跨模态组学1 小时前
J Clin Oncol(IF=43.4)美国Cedars-Sinai医学中心等团队:基于计算组织学人工智能的晚期胰腺癌化疗选择预测性生物标志物的开发与验证
人工智能·机器学习·论文·医学·医学影像·影像组学
冬奇Lab1 小时前
RAG 系列(十六):Graph RAG——用知识图谱解决多跳关系问题
人工智能·llm
冬奇Lab1 小时前
一天一个开源项目(第101篇):OpenHuman - 真正懂你的本地优先个人 AI 超级助手
人工智能·开源·资讯
云上码厂1 小时前
专业的学术会议 / 讲座视频与幻灯片托管、回放平台(可以使用SlidesLive 学英语入门清单)
人工智能
无心水2 小时前
【Hermes:安全、权限与生产环境】40、运行 Hermes 前的生命线:安全审计清单与 11 个必须检查的配置项
人工智能·安全·mcp协议·openclaw·养龙虾·hermes·honcho
温九味闻醉2 小时前
关于腾讯广告算法大赛2025项目分析3-重读
人工智能·机器学习