读取图像,对图像进行减色处理。
Author: Tian YJ
原图如下:
关于减色处理
我们将图像的值由
25
6
3
256^3
2563压缩至
4
3
4^3
43,即将
RGB
\text{RGB}
RGB的值只取
{
32
,
96
,
160
,
224
}
\{32, 96, 160, 224\}
{32,96,160,224}。这被称作色彩量化。色彩的值按照下面的方式定义:
val
=
{
32
(
0
≤
var
<
64
)
96
(
64
≤
var
<
128
)
160
(
128
≤
var
<
192
)
224
(
192
≤
var
<
256
)
\text{val}= \begin{cases} 32& (0 \leq \text{var} < 64)\\ 96& (64\leq \text{var}<128)\\ 160&(128\leq \text{var}<192)\\ 224&(192\leq \text{var}<256) \end{cases}
val=⎩⎪⎪⎪⎨⎪⎪⎪⎧3296160224(0≤var<64)(64≤var<128)(128≤var<192)(192≤var<256)
这个操作就极为简单了!
# -*- coding: utf-8 -*-
"""
Created on Wed Apr 8 12:12:25 2020
@author: Tian YJ
"""
import cv2
import numpy as np
# 减色处理函数
def dicrease_color(img):
out = img.copy()
out = out // 64 * 64 + 32
return out
# 读取图片
path = 'C:/Users/86187/Desktop/image/'
file_in = path + 'cake.jpg'
file_out = path + 'dicrease_color.jpg'
img = cv2.imread(file_in)
# 调用函数进行减色处理
out = dicrease_color(img)
# 保存图片
cv2.imwrite(file_out, out)
cv2.imshow("result", out)
cv2.waitKey(0)
cv2.destroyAllWindows()
原图 | 减色处理 |
---|---|
![]() | ![]() |