# 加载图片 读取彩色图像归一化且转换为浮点型
image = cv2.imread('./imgs/2.jpg', cv2.IMREAD_COLOR).astype(np.float32) / 255.0
# 颜色空间转换 BGR转为HLS
hlsImg = cv2.cvtColor(image, cv2.COLOR_BGR2HLS)
# 滑动条最大值
MAX_VALUE = 10
MAX_VALUE2 = 100
# 滑动条最小值
MIN_VALUE = 0
# 调节饱和度和亮度的窗口
cv2.namedWindow("lightness and saturation", cv2.WINDOW_GUI_NORMAL)
# 创建滑动块
cv2.createTrackbar("lightness", "lightness and saturation",
MIN_VALUE, MAX_VALUE, lambda x:x)
cv2.createTrackbar("saturation", "lightness and saturation",
MIN_VALUE, MAX_VALUE2, lambda x:x)
# 调整饱和度和亮度
while True:
# 复制原图
hlsCopy = np.copy(hlsImg)
# 得到 lightness 和 saturation 的值
lightness = cv2.getTrackbarPos('lightness', 'lightness and saturation')
saturation = cv2.getTrackbarPos('saturation', 'lightness and saturation')
# 调整亮度
hlsCopy[:, :, 1] = (1.0 + lightness / float(MAX_VALUE)) * hlsCopy[:, :, 1]
hlsCopy[:, :, 1][hlsCopy[:, :, 1] > 1] = 1
# 饱和度
hlsCopy[:, :, 2] = (1.0 + saturation / float(MAX_VALUE2)) * hlsCopy[:, :, 2]
hlsCopy[:, :, 2][hlsCopy[:, :, 2] > 1] = 1
# HLS2BGR
lsImg = cv2.cvtColor(hlsCopy, cv2.COLOR_HLS2BGR)
# 显示调整后的效果
cv2.imshow("lightness and saturation", lsImg)
ch = cv2.waitKey(5)
# 按 ESC 键退出
if ch == 27:
break
elif ch == ord('s'):
# 按 s 键保存并退出
lsImg = lsImg * 255
lsImg = lsImg.astype(np.uint8)
cv2.imwrite("./output/lsImg.jpg", lsImg)
break
print("lightness(亮度):",int(lightness))
print("saturation(饱和度):",int(saturation))
# 关闭所有的窗口
cv2.destroyAllWindows()
使用方法:
1. 按 “s” 键保存并退出
2. 按esc键,不保存,直接退出
lightness(亮度): 0
saturation(饱和度): 32
使用cv2调整图片亮度和饱和度,比PS还方便!import numpy as npimport cv2# 加载图片 读取彩色图像归一化且转换为浮点型image = cv2.imread('./imgs/2.jpg', cv2.IMREAD_COLOR).astype(np.float32) / 255.0# 颜色空间转换 BGR转为HLShlsImg = cv2.cvtColo...
Increment = -10.0
img = img * 1.0
I = (img[:, :, 0] + img[:, :, 1] + img[:, :, 2])/3.0 + 0.001
mask_1 = I > 128.0
r = img [:, :, 0]
g = img [:, :, 1]
b = img [:, :, 2]
1.资源简介:
Python
利用PIL Image可以
调整
图片
尺寸(宽度和高度)、
图片
大小和转换
图片
格式,
Python
利用removebg可以改变
图片
背景、透明化
处理
。
2.特点:简单
方便
、快速。
3.适用人群:想学习
Python
处理
图片
的初学者。
获取带有中文参数的url内容
对于中文的参数如果不进行编码的话,
python
的urllib2直接
处理
会报错,我们可以先将中文转换成utf- 8编码,然后
使用
urllib2.quote方法对参数进行url编码后传递。
content = u'你好 sharejs.com'
content = content.encode('utf-8')
content = urllib2.quote(content)
api_url = 'http://www.sharejs.com/q=%s'%content
res = urllib2.urlopen(api_url)
获取远程
图片
的大小和尺寸
cv2
.convertScaleAbs函数是在
OpenCV
中用来对图像进行缩放和转换的函数。要
使用
它来自适应
调整
彩色图像的
亮度
和对比度,你需要计算出图像的直方图,并
使用
cv2
.equalizeHist函数对直方图进行均衡化。接下来,你可以
使用
cv2
.convertScaleAbs函数来
调整
图像的
亮度
和对比度。
以下是一段
使用
cv2
.convertScaleAbs函数自适应
调整
彩色图像
亮度
和对比度的...
从原理上来说,进行
亮度
调整
无非两种渠道:转换到HSL或HSV(HSB)颜色空间,直接对L或者V进行
调整
。再者就是对R,G,B三个通道同时进行
调整
以达到
调整
亮度
的效果。又可以细分为大约四种方法:
1.转换到HSL(HSV)颜色空间
调整
这可以说是最直观也是最低效的方法:因为HSL(HSV同理)颜色空间天然有一个L分量表示
亮度
,直接进行
调整
即可。但是这种方法有很大的缺陷就是低效:...
本文用
Python
实现
PS
图像
调整
中的
亮度
调整
,具体的算法原理和效果可以参考之前的博客:
http://blog.csdn.net/matrix_space/article/details/22991683
import matplotlib.pyplot as plt
from skimage import io
file_name='D:/Image Processing/
PS
def list_dictionary_codes(root_dir):
paths_list = []
for parent, dirNames, fileNames in os.walk(root_dir):
for name in fileNames:
ext = ['.h', '.m', '.xib', '....
算法对
图片
对比度和
亮度
的
调整
一般通过下面公式计算:
g(x,y) = a*f(x,y)+bf(x,y)代表源图像x行,y列的像素点的c通道的数值 g(x,y)代表目
标图像x行,y列的像素点的c通道的数值
a参数(a>0)表示放大的倍数(一般在0.0~3.0之间)
b参数一般称为偏置,用来
调节
亮度
代码实现
Python
&
OpenCV
代码实现上述算法a=1.2
b=100
for i in
用
python
实现
图片
的缩放,颜色转换,图像增强,
调节
亮度
等。
from PIL import Image
import matplotlib.pyplot as plt
import os
import matplotlib.image as mpimg
from scipy import misc
from skimage import data, exposure, img_as_float, color
from PIL import Image,ImageFilter
import numpy a
!pip install -i htt
ps
://pypi.douban.com/simple
opencv
-
python
注意点
cv2
库:
1、py文件命名不能是
cv2
2、imread图形路径不能含有中文
import
cv2
import numpy as np
## 色调(H),
饱和度
(S),明度(V)
image =
cv2
.imread(r"C:\Us****mg2.jpg")
hsv =
cv2
.cvtColor(image,
cv2
.COLOR_RGB2HSV)
H, S,
# 映射表
table_b = np.array([((i / 255) * alpha_b + gamma_b) if ((i / 255) * alpha_b + gamma_b) > 0 else 0 for i in range(0, 256)]).astype("uint8")
image =
cv2
.LUT(image, table_b)
# 对比度
调整
if contrast != 0:
f = 131 * (contrast + 127) / (127 * (131 - contrast))
alpha_c = f
gamma_c = 127 * (1 - f)
# 映射表
table_c = np.array([((i / 255) * alpha_c + gamma_c) if ((i / 255) * alpha_c + gamma_c) > 0 else 0 for i in range(0, 256)]).astype("uint8")
image =
cv2
.LUT(image, table_c)
return image
# 读取
图片
img =
cv2
.imread('test.jpg')
# 创建窗口
cv2
.namedWindow('image')
# 创建滑块
cv2
.createTrackbar('Brightness', 'image', 0, 100, lambda x: None)
cv2
.createTrackbar('Contrast', 'image', 0, 100, lambda x: None)
while True:
# 获取滑块值
brightness =
cv2
.getTrackbarPos('Brightness', 'image') - 50
contrast =
cv2
.getTrackbarPos('Contrast', 'image') - 50
#
调整
亮度
和对比度
img_adjust = adjustBrightnessContrast(img, brightness, contrast)
# 显示
图片
cv2
.
imshow
('image', img_adjust)
# 按下Q键退出
if
cv2
.waitKey(1) & 0xFF == ord('q'):
break
# 释放窗口和摄像头
cv2
.destroyAllWindows()
您可以按照上述步骤来实现
Python
滑块
调整
图片
亮度
和对比度。希望能对您有所帮助。