python——图像处理3(均值偏移、改变亮度、图像修复、图像融合)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python——图像处理3(均值偏移、改变亮度、图像修复、图像融合),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3450字,纯文字阅读大概需要5分钟。
内容图文
![python——图像处理3(均值偏移、改变亮度、图像修复、图像融合)](/upload/InfoBanner/zyjiaocheng/617/31dd30e88409441e90071e3192c9aedf.jpg)
https://blog.csdn.net/gm_ergou/article/details/92846396
1.均值偏移(磨皮效果)
import cv2 as cv
import numpy as np
def bi_demo(image):#边缘保留滤波
dst=cv.bilateralFilter(image,0,40,15)
cv.imshow("bi_demo",dst)
def shift_demo(image):#均值迁移
dst=cv.pyrMeanShiftFiltering(image,10,50)
cv.imshow("bi_demo",dst)
cv.imwrite('img/1/gg.jpg',dst)
src1 = cv.imread('img/1/a3.jpg', cv.IMREAD_COLOR) # 读入彩色图片
print(src1.shape)
cv.namedWindow("input image",1)
cv.imshow('image1', src1)
shift_demo(src1)
k = cv.waitKey(0)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
2.基于hsv改变整体亮度
# encoding:utf-8
import cv2
def hsv(image, hue_shift_limit=(-2, 8), sat_shift_limit=(-5, 50),val_shift_limit=(0, 1.5)):
img = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
v = img[:, :, 2]
print(v)
v=v+10
img[:, :, 2] = v
image = cv2.cvtColor(img, cv2.COLOR_HSV2BGR)
print(v)
cv2.imwrite("img/3/0.jpg", image)
path1='img/3/gg1.jpg'
img1 = cv2.imread(path1, cv2.IMREAD_UNCHANGED)
hsv(img1)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
3.基于灰度调节亮度(两张对比)
import cv2 as cv
import numpy as np
import cv2
def get_avg(list5):
if len(list5)==0:
avg=0;
else:
avg = sum(list5)/ len(list5)
return avg
def light(img):
gray = cv.cvtColor(img, cv.COLOR_RGB2GRAY)
x = gray.shape[0]
y = gray.shape[1]
list1 = []
list2 = []
for i in range(x):
for j in range(y):
if img[i,j][0]>20:
if j>250 and j < 256:
list1.append(gray[i, j])
elif j>256 and j<262:
list2.append(gray[i, j])
avg1 = get_avg(list1)
avg2 = get_avg(list2)
return avg1,avg2
def change(img,dif):
x = img.shape[0]
y = img.shape[1]
for i in range(x):
for j in range(y):
if img[i,j][0]>20:
if j>=255:
img[i, j][0] += dif
img[i, j][1] += dif
img[i, j][2] += dif
cv2.imwrite('img/2/a5.jpg',img)
img= cv.imread('img/2/a3.jpg')
avg1=light(img)[0]
avg2=light(img)[1]
dif=avg1-avg2
change(img,dif)
print(dif)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
4.图像修复—inpaint
import cv2
img = cv2.imread('img/3/a1.jpg')
mask = cv2.imread('img/3/a2.jpg', 0)
cv2.imshow('img', img)
cv2.imshow('mask', mask)
dst = cv2.inpaint(img, mask, 20, cv2.INPAINT_TELEA)
cv2.imshow('1', dst)
dst2 = cv2.inpaint(img, mask, 20, cv2.INPAINT_NS)
cv2.imshow('2', dst2)
cv2.waitKey(0)
cv2.destroyAllWindows()
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
5.1 图像融合(整体)
#encoding:utf-8
import cv2
import numpy as np
import matplotlib.pyplot as plt
src1 = cv2.imread('img/a3.jpg')
src2 = cv2.imread('img/a5.jpg')
#图像融合
result = cv2.addWeighted(src1, 0.8, src2, 0.2, 0)
cv2.imshow("src1", src1)
cv2.imshow("src2", src2)
cv2.imshow("result", result)
# cv2.imwrite('img/a6.jpg',result)
cv2.waitKey(0)
cv2.destroyAllWindows()
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
5.2 图像融合(只融合v通道)
from PIL import *
import numpy as np;
import cv2; #导入opencv模块
img1=cv2.imread("img/a3.jpg");#读取要处理的图片
img1_hsv = cv2.cvtColor(img1, cv2.COLOR_BGR2HSV)
img1_h = img1_hsv[..., 0]
img1_s = img1_hsv[..., 1]
img1_v = img1_hsv[..., 2]
img2=cv2.imread("img/a5.jpg");#读取要处理的图片
img2_hsv = cv2.cvtColor(img2, cv2.COLOR_BGR2HSV)
img2_h = img2_hsv[..., 0]
img2_s = img2_hsv[..., 1]
img2_v = img2_hsv[..., 2]
result = cv2.addWeighted(img1_v, 0.9, img2_v, 0.1, 0)
cv2.imshow("src1", img1_v)
cv2.imshow("src2", img2_v)
cv2.imshow("result", result)
# cv2.imwrite('img/a6.jpg',result)
img3 = cv2.merge([img2_h, img2_s, result])
img4 = cv2.cvtColor(img3, cv2.COLOR_HSV2BGR)
cv2.imshow("examplesR1", img2)
cv2.imshow("examplesR2", img4)
cv2.waitKey(0)
cv2.destroyAllWindows()
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
内容总结
以上是互联网集市为您收集整理的python——图像处理3(均值偏移、改变亮度、图像修复、图像融合)全部内容,希望文章能够帮你解决python——图像处理3(均值偏移、改变亮度、图像修复、图像融合)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。