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

改变图像灰度级别

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

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

相关推荐
Huazhongzhanhui5 分钟前
从柔性裁切到模内装饰!2026武汉国际汽车内外饰展会定档九月
人工智能
萝萝仔9 分钟前
02.人工智能训练师三级是什么?谁适合考?考了有什么用?
人工智能·深度学习·机器学习·ai·云计算
在学了加油10 分钟前
阿尔茨海默病诊断(优化特征选择版)
人工智能·python·dnn
水管在开花.14 分钟前
Agent范式与LangGraph-②零基础保姆级教程
人工智能·面试·langchain·agent
白色机械键盘26 分钟前
LangGPT结构化提示词工程:从手写提示词到模块化编程的范式升级
人工智能
熙丫 1338148238629 分钟前
AI前沿部署工程师(FDE)适合谁考?工信部教考中心高级证书,打通大模型落地最后一公里
人工智能
ShallWeL36 分钟前
RAG 文档变更后的检索回归清单
人工智能·agent·知识库·rag·检索
Hrain-AI37 分钟前
企业 AI 治理运营怎么做:分级授权、Token 用量可观测与模型统一纳管
大数据·人工智能·算法
2401_8652616341 分钟前
亦唐科技:创新驱动下的国产贴片机领航者
人工智能
Mr数据杨41 分钟前
【CanMV K210】硬件基础 面包板连通规则与无焊接电路搭建
人工智能·硬件开发·canmv k210