上海做网站谁好,营销型网站框架图,建个视频网站多少钱,无锡seo网站排名优化目录 八、图像拼接
水平拼接图像 (hconcat)
垂直拼接图像 (vconcat)
全景图像拼接 (Stitcher)
九、颜色通道及数据格式
转换图像的颜色空间 (cvtColor)
转换图像的数据类型 (convertTo)
分离和合并颜色通道 (split 和 merge)
提取和插入颜色通道 (extractChannel 和 in…目录 八、图像拼接
水平拼接图像 (hconcat)
垂直拼接图像 (vconcat)
全景图像拼接 (Stitcher)
九、颜色通道及数据格式
转换图像的颜色空间 (cvtColor)
转换图像的数据类型 (convertTo)
分离和合并颜色通道 (split 和 merge)
提取和插入颜色通道 (extractChannel 和 insertChannel)
应用颜色映射 (applyColorMap)
十、图像复制函数
使用 clone 进行深拷贝
使用 copyTo 进行复制
使用 copyTo 和掩码进行复制
十一、图像变化与增强
缩放、计算绝对值并转换为8位 (convertScaleAbs)
计算自然对数 (log)
计算指数 (exp)
计算幂 (pow)
计算平方根 (sqrt)
直方图均衡化 (equalizeHist)
自适应直方图均衡化 (CLAHE)
细节增强 (detailEnhance)
改变光照条件 (illuminationChange) http://t.csdnimg.cn/i8pqt —— opencv—常用函数学习_“干货“_总VIP
散的正在一部分一部分发不需要VIP。
资料整理不易有用话给个赞和收藏吧。 八、图像拼接 在OpenCV中图像拼接是指将多幅图像合并成一幅图像的过程。OpenCV提供了几种常用的函数和类来实现图像拼接。下面介绍这些拼接相关的函数及其使用示例。
图像拼接函数hconcatvconcatStitcher水平拼接图像垂直拼接图像全景图像拼接类
水平拼接图像 (hconcat)
import cv2
import numpy as np# 创建两个示例图像
image1 np.full((100, 200, 3), 255, dtypenp.uint8) # 白色图像
image2 np.full((100, 200, 3), 0, dtypenp.uint8) # 黑色图像# 水平拼接图像
result_hconcat cv2.hconcat([image1, image2])
cv2.imshow(Horizontal Concatenation, result_hconcat)
cv2.waitKey(0)
cv2.destroyAllWindows()垂直拼接图像 (vconcat)
# 垂直拼接图像
result_vconcat cv2.vconcat([image1, image2])
cv2.imshow(Vertical Concatenation, result_vconcat)
cv2.waitKey(0)
cv2.destroyAllWindows()全景图像拼接 (Stitcher)
# 读取待拼接的图像
image1 cv2.imread(image1.jpg)
image2 cv2.imread(image2.jpg)# 创建Stitcher对象并进行拼接
stitcher cv2.Stitcher_create()
status, stitched stitcher.stitch([image1, image2])if status cv2.Stitcher_OK:cv2.imshow(Stitched Image, stitched)cv2.waitKey(0)cv2.destroyAllWindows()
else:print(拼接失败)这些示例展示了如何使用OpenCV中的拼接函数来实现图像的水平拼接、垂直拼接以及全景图像拼接。这些函数和类在图像处理、计算机视觉以及图像分析中非常有用可以根据具体需求灵活应用。
九、颜色通道及数据格式 在OpenCV中颜色通道及数据格式的转换和操作是图像处理的重要部分。下面介绍这些相关的函数及其使用示例。
颜色通道及数据格式cvtColorconvertTosplitmerge转换图像的颜色空间转换图像的数据类型分离图像的颜色通道合并图像的颜色通道extractChannelinsertChannelapplyColorMap提取单个颜色通道插入单个颜色通道应用颜色映射
转换图像的颜色空间 (cvtColor)
import cv2
import numpy as np# 读取图像
image cv2.imread(path_to_image.jpg)# 转换为灰度图像
gray_image cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
cv2.imshow(Gray Image, gray_image)
cv2.waitKey(0)
cv2.destroyAllWindows()转换图像的数据类型 (convertTo)
# 转换数据类型为float32
float_image np.float32(image)
converted_image float_image / 255.0
cv2.imshow(Converted Image, converted_image)
cv2.waitKey(0)
cv2.destroyAllWindows()分离和合并颜色通道 (split 和 merge)
# 分离颜色通道
b, g, r cv2.split(image)# 合并颜色通道
merged_image cv2.merge([b, g, r])
cv2.imshow(Merged Image, merged_image)
cv2.waitKey(0)
cv2.destroyAllWindows()提取和插入颜色通道 (extractChannel 和 insertChannel)
# 提取蓝色通道
blue_channel cv2.extractChannel(image, 0)
cv2.imshow(Blue Channel, blue_channel)
cv2.waitKey(0)
cv2.destroyAllWindows()# 插入通道
new_image cv2.insertChannel(blue_channel, image, 1)
cv2.imshow(Image with Inserted Channel, new_image)
cv2.waitKey(0)
cv2.destroyAllWindows()应用颜色映射 (applyColorMap)
# 应用颜色映射
color_mapped_image cv2.applyColorMap(gray_image, cv2.COLORMAP_JET)
cv2.imshow(Color Mapped Image, color_mapped_image)
cv2.waitKey(0)
cv2.destroyAllWindows()这些示例展示了如何使用OpenCV中的函数来处理图像的颜色通道和数据格式。根据具体的应用需求可以灵活运用这些函数来实现复杂的图像处理任务。
十、图像复制函数 在OpenCV中图像复制是基本的操作可以通过 clone 和 copyTo 函数来实现。下面介绍这些函数及其使用示例。
图像复制函数clonecopyTo创建一个图像的深拷贝将图像数据复制到另一个矩阵可以选择性地使用掩码
使用 clone 进行深拷贝
import cv2
import numpy as np# 读取图像
image cv2.imread(path_to_image.jpg)# 使用 clone 进行深拷贝
cloned_image image.clone()# 显示原图和拷贝图
cv2.imshow(Original Image, image)
cv2.imshow(Cloned Image, cloned_image)
cv2.waitKey(0)
cv2.destroyAllWindows()使用 copyTo 进行复制
# 创建一个与原图像相同大小的空图像
copy_image np.zeros_like(image)# 直接复制图像
image.copyTo(copy_image)# 显示原图和拷贝图
cv2.imshow(Original Image, image)
cv2.imshow(Copy Image, copy_image)
cv2.waitKey(0)
cv2.destroyAllWindows()使用 copyTo 和掩码进行复制
# 创建一个掩码
mask np.zeros(image.shape[:2], dtypenp.uint8)
mask[50:150, 50:150] 255 # 在掩码上定义一个区域# 复制图像中的特定区域
masked_copy np.zeros_like(image)
image.copyTo(masked_copy, maskmask)# 显示原图、掩码和掩码复制图
cv2.imshow(Original Image, image)
cv2.imshow(Mask, mask)
cv2.imshow(Masked Copy Image, masked_copy)
cv2.waitKey(0)
cv2.destroyAllWindows()这些示例展示了如何使用OpenCV中的 clone 和 copyTo 函数来复制图像。根据具体的需求可以选择直接复制整个图像或使用掩码复制特定区域的图像数据。这些操作在图像处理、图像增强和计算机视觉应用中非常有用。
十一、图像变化与增强 在OpenCV中图像变换与增强是图像处理的重要组成部分。下面介绍一些常用的图像变换与增强函数及其使用示例。
图像变换与增强函数convertScaleAbslogexppowsqrt缩放、计算绝对值并转换为8位计算每个元素的自然对数计算每个元素的指数计算每个元素的幂计算每个元素的平方根equalizeHistCLAHEdetailEnhanceilluminationChange直方图均衡化自适应直方图均衡化对比度受限的自适应直方图均衡化细节增强改变光照条件
缩放、计算绝对值并转换为8位 (convertScaleAbs)
import cv2
import numpy as np# 读取图像
image cv2.imread(path_to_image.jpg, cv2.IMREAD_GRAYSCALE)# 缩放、计算绝对值并转换为8位
scaled_image cv2.convertScaleAbs(image, alpha1.5, beta0)
cv2.imshow(Scaled Image, scaled_image)
cv2.waitKey(0)
cv2.destroyAllWindows()计算自然对数 (log)
# 计算每个元素的自然对数
log_image cv2.log(np.float32(image) 1) # 加1防止对数的负无穷
cv2.imshow(Log Image, cv2.convertScaleAbs(log_image))
cv2.waitKey(0)
cv2.destroyAllWindows()计算指数 (exp)
# 计算每个元素的指数
exp_image cv2.exp(np.float32(image))
cv2.imshow(Exp Image, cv2.convertScaleAbs(exp_image))
cv2.waitKey(0)
cv2.destroyAllWindows()计算幂 (pow)
# 计算每个元素的幂
pow_image cv2.pow(np.float32(image), 2)
cv2.imshow(Pow Image, cv2.convertScaleAbs(pow_image))
cv2.waitKey(0)
cv2.destroyAllWindows()计算平方根 (sqrt)
# 计算每个元素的平方根
sqrt_image cv2.sqrt(np.float32(image))
cv2.imshow(Sqrt Image, cv2.convertScaleAbs(sqrt_image))
cv2.waitKey(0)
cv2.destroyAllWindows()直方图均衡化 (equalizeHist)
# 直方图均衡化
equalized_image cv2.equalizeHist(image)
cv2.imshow(Equalized Image, equalized_image)
cv2.waitKey(0)
cv2.destroyAllWindows()自适应直方图均衡化 (CLAHE)
# 创建CLAHE对象
clahe cv2.createCLAHE(clipLimit2.0, tileGridSize(8, 8))# 应用CLAHE
clahe_image clahe.apply(image)
cv2.imshow(CLAHE Image, clahe_image)
cv2.waitKey(0)
cv2.destroyAllWindows()细节增强 (detailEnhance)
# 细节增强
detail_image cv2.detailEnhance(image)
cv2.imshow(Detail Enhanced Image, detail_image)
cv2.waitKey(0)
cv2.destroyAllWindows()改变光照条件 (illuminationChange)
# 改变光照条件
illum_image cv2.illuminationChange(image, masknp.ones(image.shape, dtypenp.uint8), alpha0.5, beta2)
cv2.imshow(Illumination Changed Image, illum_image)
cv2.waitKey(0)
cv2.destroyAllWindows()这些示例展示了如何使用OpenCV中的图像变换与增强函数来处理图像。根据具体的应用需求可以灵活运用这些函数来实现复杂的图像处理和增强任务。