技巧一:曝光与对比度的调整
在修图过程中,曝光和对比度的调整是至关重要的。通过合理调整,可以使照片更加生动,细节更加丰富。以下是一个简单的调整步骤:
import cv2
import numpy as np
# 读取图片
image = cv2.imread('example.jpg')
# 调整曝光
brightness = 1.2
image = cv2.addWeighted(image, brightness, np.zeros(image.shape, dtype=image.dtype), 0, 0)
# 调整对比度
contrast = 1.5
image = cv2.normalize(image, None, alpha=contrast, beta=255-contrast*255, norm_type=cv2.NORM_MINMAX)
# 显示结果
cv2.imshow('Adjust Exposure and Contrast', image)
cv2.waitKey(0)
cv2.destroyAllWindows()
技巧二:色彩平衡的运用
色彩平衡的运用可以使照片呈现出不同的氛围。以下是一个简单的色彩平衡调整步骤:
def adjust_color_balance(image, temp, saturation):
# 转换为HSV空间
hsv = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
# 调整色调
hsv[:, :, 0] = temp
temp = np.uint8(hsv)
# 调整饱和度
v = cv2.split(temp)[2]
v[v <= 150] += saturation
v[v > 150] -= saturation
v = v.clip(0, 255)
v = v.reshape((1, 1, 1))
temp = cv2.merge([hsv[:, :, 0], hsv[:, :, 1], v])
# 转换回BGR空间
image = cv2.cvtColor(temp, cv2.COLOR_HSV2BGR)
return image
# 调整色彩平衡
image = adjust_color_balance(image, temp=50, saturation=30)
# 显示结果
cv2.imshow('Adjust Color Balance', image)
cv2.waitKey(0)
cv2.destroyAllWindows()
技巧三:局部调色
局部调色可以针对照片中的特定区域进行调整,使照片更加自然。以下是一个简单的局部调色步骤:
def local_color_adjust(image, mask, r_gain, g_gain, b_gain):
# 读取图像
r, g, b = cv2.split(image)
# 根据mask调整颜色
r = cv2.multiply(r, mask)
g = cv2.multiply(g, mask)
b = cv2.multiply(b, mask)
# 应用增益
r = cv2.add(r, r_gain)
g = cv2.add(g, g_gain)
b = cv2.add(b, b_gain)
# 合并通道
image = cv2.merge([r, g, b])
return image
# 创建掩码
mask = np.zeros_like(image, dtype=np.uint8)
mask[0:200, 0:200] = 255
# 局部调色
image = local_color_adjust(image, mask, r_gain=30, g_gain=50, b_gain=20)
# 显示结果
cv2.imshow('Local Color Adjust', image)
cv2.waitKey(0)
cv2.destroyAllWindows()
技巧四:锐化与模糊
锐化可以使照片更加清晰,而模糊可以使照片产生不同的艺术效果。以下是一个简单的锐化与模糊步骤:
# 锐化
image = cv2.filter2D(image, -1, np.array([[-1, -1, -1], [-1, 9, -1], [-1, -1, -1]]))
# 模糊
image = cv2.GaussianBlur(image, (5, 5), 0)
# 显示结果
cv2.imshow('Sharpen and Blur', image)
cv2.waitKey(0)
cv2.destroyAllWindows()
技巧五:去除噪点
去除噪点可以使照片更加清晰,以下是一个简单的去除噪点步骤:
# 中值滤波去除噪点
image = cv2.medianBlur(image, 3)
# 显示结果
cv2.imshow('Remove Noise', image)
cv2.waitKey(0)
cv2.destroyAllWindows()
技巧六:修复划痕与污渍
修复划痕与污渍可以使照片更加完美,以下是一个简单的修复步骤:
def repair_scratches(image, radius=10):
# 创建修复掩码
mask = np.zeros_like(image, dtype=np.uint8)
mask[:radius, :] = 255
mask[:, :radius] = 255
# 按掩码修复划痕
image = cv2.copyMakeBorder(image, radius, radius, radius, radius, cv2.BORDER_REPLICATE)
for i in range(radius):
for j in range(radius):
image[i:i+1, j:j+1] = cv2.repair(image[i:i+1, j:j+1], mask[i:i+1, j:j+1])
image = image[radius:-radius, radius:-radius]
return image
# 修复划痕与污渍
image = repair_scratches(image)
# 显示结果
cv2.imshow('Repair Scratches and Stains', image)
cv2.waitKey(0)
cv2.destroyAllWindows()
技巧七:人像美容
人像美容可以使照片中的人物更加美丽,以下是一个简单的人像美容步骤:
# 使用高斯模糊平滑皮肤
image = cv2.GaussianBlur(image, (21, 21), 0)
# 使用阈值分割去除皮肤上的小斑点
image = cv2.threshold(image, 220, 255, cv2.THRESH_BINARY)[1]
# 使用修复划痕函数去除皮肤上的划痕与污渍
image = repair_scratches(image)
# 显示结果
cv2.imshow('Portrait Beauty', image)
cv2.waitKey(0)
cv2.destroyAllWindows()
技巧八:图像裁剪与拼接
图像裁剪与拼接可以使照片更加完美,以下是一个简单的裁剪与拼接步骤:
# 裁剪图像
image = image[100:300, 100:300]
# 拼接图像
image = cv2.hconcat([image, image])
# 显示结果
cv2.imshow('Image Crop and Stich', image)
cv2.waitKey(0)
cv2.destroyAllWindows()
技巧九:图像风格转换
图像风格转换可以使照片呈现出不同的艺术效果,以下是一个简单的图像风格转换步骤:
# 定义风格图像
style_image = cv2.imread('style.jpg')
# 计算风格图像的Gram矩阵
gram_matrix = cv2.calcgram(style_image, [0, 1, 2], 1, (20, 20))
# 使用Gram矩阵进行风格转换
style_image = cv2.warpAffine(style_image, np.float32([[1, 0, 0], [0, 1, 0], [0, 0, 1]]), (image.shape[1], image.shape[0]))
style_image = cv2.cvtColor(style_image, cv2.COLOR_BGR2GRAY)
style_image = cv2.resize(style_image, (20, 20))
style_image = style_image * gram_matrix / np.sum(gram_matrix)
# 显示结果
cv2.imshow('Style Transfer', style_image)
cv2.waitKey(0)
cv2.destroyAllWindows()
技巧十:图像超分辨率
图像超分辨率可以使低分辨率图像变得更加清晰,以下是一个简单的图像超分辨率步骤:
# 使用PySR进行超分辨率
import pysr
# 读取低分辨率图像
image = cv2.imread('low_resolution.jpg')
# 使用PySR进行超分辨率
result = pysr.SR(image, scale=4)
# 显示结果
cv2.imshow('Super-Resolution', result)
cv2.waitKey(0)
cv2.destroyAllWindows()
以上是修图师必备的十大常用技巧,希望对您有所帮助。在修图过程中,可以根据具体需求灵活运用这些技巧,使照片更加完美。
