vs做的网站如何域名能卖多少钱一个
web/
2025/10/8 11:31:40/
文章来源:
vs做的网站如何,域名能卖多少钱一个,上海网站原型设计,策划一场网络营销活动专栏地址#xff1a;『youcans 的图像处理学习课』 文章目录#xff1a;『youcans 的图像处理学习课 - 总目录』 【youcans 的图像处理学习课】4. 图像的叠加与混合 文章目录【youcans 的图像处理学习课】4. 图像的叠加与混合1. 图像的加法运算基本例程#xff1a;1.22 图像… 专栏地址『youcans 的图像处理学习课』 文章目录『youcans 的图像处理学习课 - 总目录』 【youcans 的图像处理学习课】4. 图像的叠加与混合 文章目录【youcans 的图像处理学习课】4. 图像的叠加与混合1. 图像的加法运算基本例程1.22 图像的加法基本例程1.23 图像与标量相加2. 图像的加权加法基本例程1.24 图像的混合加权加法扩展例程1.25 不同尺寸的图像加法扩展例程1.26 两张图像的渐变切换 改变加权叠加的权值3. 图像的掩模加法基本例程1.27 图像的掩模加法扩展例程1.28 圆形和其它形状的图像遮罩4. 图像的按位运算基本例程1.29 图像的位操作5. 图像的叠加基本例程1.30 图像的叠加6. 图像添加文字基本例程1.31 图像添加文字扩展例程1.32 图像中添加中文文字1. 图像的加法运算
函数 cv2.add() 用于图像的加法运算。
函数说明
cv2.add(src1, src2 [, dst[, mask[, dtype]]) → dst函数 cv2.add() 对两张相同大小和类型的图像进行加法运算或对一张图像与一个标量进行加法运算。
两张图像相加时将两张图像相同位置像素的各通道值或灰度值分别相加可以理解为一种图像叠加方式对一张图像与一个标量相加时则将图像所有像素的各通道值分别与标量的各通道值相加。
参数说明
scr1, scr2进行加法运算的图像或一张图像与一个 numpy array 标量dst输出的图像可选项默认值为 Nonemask掩模图像8位灰度格式掩模图像数值为 0 的像素输出图像对应像素的各通道值也为 0。可选项默认值为 Nonedtype图像数组的深度即每个像素值的位数可选项返回值dst运算结果图像ndarray 多维数组
注意事项
OpenCV 加法和 numpy 加法之间有区别cv2.add() 是饱和运算相加后如大于 255 则结果为 255而 Numpy 加法是模运算。使用 cv2.add() 函数对两张图片相加时图片的大小和类型通道数必须相同。使用 cv2.add() 函数对一张图像与一个标量相加标量是指一个 1x3 的 numpy 数组相加后图像整体发白。 基本例程1.22 图像的加法 # 1.22 图像的加法 (cv2.add)img1 cv2.imread(../images/imgB1.jpg) # 读取彩色图像(BGR)img2 cv2.imread(../images/imgB3.jpg) # 读取彩色图像(BGR)imgAddCV cv2.add(img1, img2) # OpenCV 加法: 饱和运算imgAddNP img1 img2 # # Numpy 加法: 模运算plt.subplot(221), plt.title(1. img1), plt.axis(off)plt.imshow(cv2.cvtColor(img1, cv2.COLOR_BGR2RGB)) # 显示 img1(RGB)plt.subplot(222), plt.title(2. img2), plt.axis(off)plt.imshow(cv2.cvtColor(img2, cv2.COLOR_BGR2RGB)) # 显示 img2(RGB)plt.subplot(223), plt.title(3. cv2.add(img1, img2)), plt.axis(off)plt.imshow(cv2.cvtColor(imgAddCV, cv2.COLOR_BGR2RGB)) # 显示 imgAddCV(RGB)plt.subplot(224), plt.title(4. img1 img2), plt.axis(off)plt.imshow(cv2.cvtColor(imgAddNP, cv2.COLOR_BGR2RGB)) # 显示 imgAddNP(RGB)plt.show()例程说明 1.22
本例程运行结果如下图所示。图 3 是 cv2.add() 饱和加法的结果图 4 是 numpy 取模加法的结果。
饱和加法以 255 为上限所有像素只会变的更白大于原值取模加法以 255 为模会导致部分像素变黑 小于原值。因此一般情况下应使用 cv2.add 进行饱和加法操作不宜使用 numpy 取模加法。 基本例程1.23 图像与标量相加
# 1.23 图像的加法 (与标量相加)img1 cv2.imread(../images/imgB1.jpg) # 读取彩色图像(BGR)img2 cv2.imread(../images/imgB3.jpg) # 读取彩色图像(BGR)Value 100 # 常数# Scalar np.array([[50., 100., 150.]]) # 标量Scalar np.ones((1, 3), dtypefloat) * Value # 标量imgAddV cv2.add(img1, Value) # OpenCV 加法: 图像 常数imgAddS cv2.add(img1, Scalar) # OpenCV 加法: 图像 标量print(Shape of scalar, Scalar)for i in range(1, 6):x, y i*10, i*10print((x,y){},{}, img1:{}, imgAddV:{}, imgAddS:{}.format(x,y,img1[x,y],imgAddV[x,y],imgAddS[x,y]))plt.subplot(131), plt.title(1. img1), plt.axis(off)plt.imshow(cv2.cvtColor(img1, cv2.COLOR_BGR2RGB)) # 显示 img1(RGB)plt.subplot(132), plt.title(2. img constant), plt.axis(off)plt.imshow(cv2.cvtColor(imgAddV, cv2.COLOR_BGR2RGB)) # 显示 imgAddV(RGB)plt.subplot(133), plt.title(3. img scalar), plt.axis(off)plt.imshow(cv2.cvtColor(imgAddS, cv2.COLOR_BGR2RGB)) # 显示 imgAddS(RGB)plt.show()例程说明 1.23
本例程运行结果如下。
Shape of scalar [[150. 150. 150.]]
(x,y)10,10, img1:[ 9 9 69], imgAddV:[159 9 69], imgAddS:[159 159 219]
(x,y)20,20, img1:[ 3 252 255], imgAddV:[153 252 255], imgAddS:[153 255 255]
(x,y)30,30, img1:[ 1 255 254], imgAddV:[151 255 254], imgAddS:[151 255 255]
(x,y)40,40, img1:[ 1 255 254], imgAddV:[151 255 254], imgAddS:[151 255 255]
(x,y)50,50, img1:[ 1 255 255], imgAddV:[151 255 255], imgAddS:[151 255 255]注意 cv2.add() 对图像与标量相加时“常数” 与 “标量” 的区别将图像与一个常数 value 相加只是将 B 通道即蓝色分量与常数相加而 G、R 通道的数值不变因此图像发蓝。将图像与一个标量 scalar 相加“标量” 是指一个 1x3 的 numpy 数组此时 B/G/R 通道分别与数组中对应的常数相加因此图像发白。标量 numpy 数组的形式为np.array([[c1, c2, c3]])常数 c1,c2,c3 可以相同或不同。 2. 图像的加权加法
函数 cv2.addWeight() 用于图像的加权加法运算。
函数说明
cv2.addWeighted(src1, alpha, src2, beta, gamma[, dst[, dtype]]) → dst 函数 cv2.addWeighted() 对两张相同大小和类型的图像按权重相加可以实现图像的叠加和混合。加权加法的计算表达式为 dst src1 * alpha src2 * beta gamma 参数说明
scr1, scr2ndarray 多维数组表示一个灰度或彩色图像alpha第一张图像 scr1 的权重通常取为 01 之间的浮点数beta第二张图像 scr2 的权重通常取为 01 之间的浮点数gamma 灰度系数图像校正的偏移量用于调节亮度dtype 输出图像的深度即每个像素值的位数可选项默认等于 src1.depth()返回值dst加权加法运算结果的图像数组
注意事项
使用 cv2.addWeight() 函数对两张图片相加时图片的大小和类型通道数必须相同。alphabetagamma 可调可以根据需要调整图像的权重以达到不同的显示效果。推荐取 beta1-alpha, gamma0。 基本例程1.24 图像的混合加权加法 # 1.24 图像的混合(加权加法)img1 cv2.imread(../images/imgGaia.tif) # 读取图像 imgGaiaimg2 cv2.imread(../images/imgLena.tif) # 读取图像 imgLenaimgAddW1 cv2.addWeighted(img1, 0.2, img2, 0.8, 0) # 加权相加, a0.2, b0.8imgAddW2 cv2.addWeighted(img1, 0.5, img2, 0.5, 0) # 加权相加, a0.5, b0.5imgAddW3 cv2.addWeighted(img1, 0.8, img2, 0.2, 0) # 加权相加, a0.8, b0.2plt.subplot(131), plt.title(1. a0.2, b0.8), plt.axis(off)plt.imshow(cv2.cvtColor(imgAddW1, cv2.COLOR_BGR2RGB)) # 显示 img1(RGB)plt.subplot(132), plt.title(2. a0.5, b0.5), plt.axis(off)plt.imshow(cv2.cvtColor(imgAddW2, cv2.COLOR_BGR2RGB)) # 显示 imgAddV(RGB)plt.subplot(133), plt.title(3. a0.8, b0.2), plt.axis(off)plt.imshow(cv2.cvtColor(imgAddW3, cv2.COLOR_BGR2RGB)) # 显示 imgAddS(RGB)plt.show()本例程运行结果如下 扩展例程1.25 不同尺寸的图像加法 # 1.25 不同尺寸的图像加法imgL cv2.imread(../images/imgB2.jpg) # 读取大图imgS cv2.imread(../images/logoCV.png) # 读取小图 (LOGO)x,y 300,50 # 叠放位置W1, H1 imgL.shape[1::-1] # 大图尺寸W2, H2 imgS.shape[1::-1] # 小图尺寸if (x W2) W1: x W1 - W2 # 调整图像叠放位置避免溢出if (y H2) H1: y H1 - H2imgCrop imgL[y:y H2, x:x W2] # 裁剪大图与小图 imgS 的大小相同imgAdd cv2.add(imgCrop, imgS) # cv2 加法裁剪图与小图叠加alpha, beta, gamma 0.2, 0.8, 0.0 # 加法权值imgAddW cv2.addWeighted(imgCrop, alpha, imgS, beta, gamma) # 加权加法裁剪图与小图叠加imgAddM np.array(imgL)imgAddM[y:y H2, x:x W2] imgAddW # 用叠加小图替换原图 imgL 的叠放位置cv2.imshow(imgAdd, imgAdd)cv2.imshow(imgAddW, imgAddW)cv2.imshow(imgAddM, imgAddM)cv2.waitKey(0)需要说明的是对不同尺寸的图像叠加可以有不同的理解和处理。本例程是将小图叠加到大图的指定位置。 本例程运行结果如下图所示。 扩展例程1.26 两张图像的渐变切换 改变加权叠加的权值 # 1.26 两张图像的的渐变切换 (改变加权叠加的权值)img1 cv2.imread(../images/imgLena.tif) # 读取图像 imgLenaimg2 cv2.imread(../images/imgB3.jpg) # 读取彩色图像(BGR)wList np.arange(0.0, 1.0, 0.05) # start, end, stepfor w in wList:imgAddW cv2.addWeighted(img1, w, img2, (1 - w), 0)cv2.imshow(imgAddWeight, imgAddW)cv2.waitKey(100)3. 图像的掩模加法
图像掩模image mask也常被写成 “图像掩膜”是用特定的图像或函数对另一图像进行覆盖或遮蔽以控制图像处理的区域或图像处理的过程。图像掩模常用于提取感兴趣区域ROI、提取结构特征或制作特殊形状的图像。
用于遮蔽的图像或函数称为掩模、掩像、模板或遮罩mask。对图像进行处理时被遮蔽的区域不参加处理或不参加处理参数的计算或者相反地仅对被遮蔽的区域进行处理或统计。
函数 cv2.add() 用于图像的加法运算可以使用掩模图像进行遮蔽。
cv2.add(src1, src2 [, dst[, mask[, dtype]]) → dst
掩模图像中的黑色区域数值为 0cv2.add 的输出也为黑色数值为 0掩模图像中的非黑色区域非 0 值cv2.add 的输出为加法输出。换句话说函数 cv2.add 进行加法运算对被掩模图像遮蔽的黑色区域不进行处理保持黑色。
注意事项
掩模图像 mask 为 8位灰度格式遮蔽区域为黑色数值为 0非遮蔽区域为白色数值为 255也称为开窗区域、窗口。掩模图像与进行加法运算的图像 src1, src2 的形状必须相同。 基本例程1.27 图像的掩模加法 # 1.27 图像的加法 (掩模 mask)img1 cv2.imread(../images/imgLena.tif) # 读取彩色图像(BGR)img2 cv2.imread(../images/imgB3.jpg) # 读取彩色图像(BGR)Mask np.zeros((img1.shape[0], img1.shape[1]), dtypenp.uint8) # 返回与图像 img1 尺寸相同的全零数组xmin, ymin, w, h 180, 190, 200, 200 # 矩形裁剪区域 (ymin:yminh, xmin:xminw) 的位置参数Mask[ymin:yminh, xmin:xminw] 255 # 掩模图像ROI 为白色其它区域为黑色print(img1.shape, img2.shape, Mask.shape)imgAddMask1 cv2.add(img1, img2, maskMask) # 带有掩模 mask 的加法imgAddMask2 cv2.add(img1, np.zeros(np.shape(img1), dtypenp.uint8), maskMask) # 提取 ROIcv2.imshow(MaskImage, Mask) # 显示掩模图像 Maskcv2.imshow(MaskAdd, imgAddMask1) # 显示掩模加法结果 imgAddMask1cv2.imshow(MaskROI, imgAddMask2) # 显示从 img1 提取的 ROIkey cv2.waitKey(0) # 等待按键命令
例程说明 1.27
本例程运行结果如下。
imgAddMask1 是标准的掩模加法在窗口区域将 img1 与 img2 进行饱和加法其它区域为黑色遮蔽。imgAddMask2 中加法运算的第二图像是全黑图像数值为 0掩模加法的结果是从第一图像中提取遮蔽窗口该操作生成的图像是从原图中提取感兴趣区域ROI、黑色遮蔽其它区域。 扩展例程1.28 圆形和其它形状的图像遮罩 # 1.28 图像的加法 (圆形和其它形状的遮罩)img1 cv2.imread(../images/imgLena.tif) # 读取彩色图像(BGR)img2 cv2.imread(../images/imgB3.jpg) # 读取彩色图像(BGR)Mask1 np.zeros((img1.shape[0], img1.shape[1]), dtypenp.uint8) # 返回与图像 img1 尺寸相同的全零数组Mask2 Mask1.copy()cv2.circle(Mask1, (285, 285), 110, (255, 255, 255), -1) # -1 表示实心cv2.ellipse(Mask2, (285, 285), (100, 150), 0, 0, 360, 255, -1) # -1 表示实心imgAddMask1 cv2.add(img1, np.zeros(np.shape(img1), dtypenp.uint8), maskMask1) # 提取圆形 ROIimgAddMask2 cv2.add(img1, np.zeros(np.shape(img1), dtypenp.uint8), maskMask2) # 提取椭圆 ROIcv2.imshow(circularMask, Mask1) # 显示掩模图像 Maskcv2.imshow(circularROI, imgAddMask1) # 显示掩模加法结果 imgAddMask1cv2.imshow(ellipseROI, imgAddMask2) # 显示掩模加法结果 imgAddMask2key cv2.waitKey(0) # 等待按键命令
本例程运行结果如下。
通过设计圆形、椭圆形或其它形状的图像遮罩可以从一张图像中提取不同形状的区域。 4. 图像的按位运算
函数 cv2.bitwise 提供了图像的位运算对图像的像素点值按位操作快速高效、方便灵活。
函数说明
cv.bitwise_and(src1, src2[, dst[, mask]] → dst # 位操作: 与
cv.bitwise_or(src1, src2[, dst[, mask]] → dst # 位操作: 或
cv.bitwise_xor(src1, src2[, dst[, mask]] → dst # 位操作: 与或
cv.bitwise_not(src1, src2[, dst[, mask]] → dst # 位操作: 非取反
位运算包括四种方法按位与、按位或、按位非、按位异或其计算方法是对图像的像素点值的按位运算运算效率高、速度快。以按位与操作 “bitwise_and” 为例 对图像中的每一像素矩阵中的每一元素将数值转换为二进制对 src1 和 src2 同一位置像素的数值进行按位操作 按位与 111, 100, 000将位操作的二进制结果转换为十进制。 类似地按位或、按位非、按位异或操作先将像素值转换为二进制进行位操作后再将结果转换回十进制。
参数说明
scr1, scr2进行位运算的图像ndarray 多维数组mask掩模图像8位灰度格式与 scr1 大小相同可选参数返回值dst位运算结果图像ndarray 多维数组
注意事项
进行位运算的图像 scr1, scr2 的大小和类型通道数必须相同。使用掩模图像时掩模图像中的黑色区域数值为 0输出也为黑色数值为 0掩模图像中的非黑色区域非 0 值按位操作输出。 基本例程1.29 图像的位操作 # 1.29 图像的位操作img1 cv2.imread(../images/imgLena.tif) # 读取彩色图像(BGR)img2 cv2.imread(../images/imgB2.jpg) # 读取彩色图像(BGR)imgAnd cv2.bitwise_and(img1, img2) # 按位 与(AND)imgOr cv2.bitwise_or(img1, img2) # 按位 或(OR)imgNot cv2.bitwise_not(img1) # 按位 非(NOT)imgXor cv2.bitwise_xor(img1, img2) # 按位 异或(XOR)plt.figure(figsize(9,6))titleList [img1, img2, and, or, not, xor]imageList [img1, img2, imgAnd, imgOr, imgNot, imgXor]for i in range(6):plt.subplot(2,3,i1), plt.title(titleList[i]), plt.axis(off)plt.imshow(cv2.cvtColor(imageList[i], cv2.COLOR_BGR2RGB), gray)plt.show()
例程说明 1.29
本例程运行结果如下图所示。
图中给出了两张图像进行位运算的结果看起来有些莫名其妙很难理解位操作究竟有什么意义。确实如此其实位操作基本上不会用于两张普通图像的操作通常是用于图像的掩模操作我们来看下一个例程。 5. 图像的叠加
两张图像直接进行加法运算后图像的颜色会改变通过加权加法实现图像混合后图像的透明度会改变都不能实现图像的叠加。
实现图像的叠加需要综合运用图像阈值处理、图像掩模、位操作和图像加法的操作。
我们以 Lena 图像叠加 CVlogo 为例讨论图像叠加的思路和步骤
确定图像叠加位置将 Lena 图像中的叠加位置裁剪出来使叠加图像的尺寸相同对前景图像进行二值化处理生成黑白掩模图像 maskLOGO区域黑色遮盖及其反转掩模图像 maskInv LOGO区域白色开窗以黑白掩模 maskLOGO区域黑色遮盖作为掩模对背景图像Lena裁剪图进行位操作LOGO区域遮盖为黑色其它区域保持不变得到叠加背景图像 img1BG以反转掩模 maskInvLOGO区域白色开窗作为掩模对前景图像CVlogo进行位操作LOGO区域保持不变其它区域遮盖为黑色得到叠加前景图像 img2FG背景图像 img1BG 和 前景图像 img2FG 通过 cv2.add 加法运算得到裁剪部分的叠加图像用叠加图像替换Lena 图像中的叠加位置得到Lena 叠加 CVlogo 的图像。 基本例程1.30 图像的叠加 # 1.30 图像的叠加img1 cv2.imread(../images/imgLena.tif) # 读取彩色图像(BGR)img2 cv2.imread(../images/logoCV.png) # 读取 CV Logox, y (0, 10) # 图像叠加位置W1, H1 img1.shape[1::-1]W2, H2 img2.shape[1::-1]if (x W2) W1: x W1 - W2if (y H2) H1: y H1 - H2print(W1,H1,W2,H2,x,y)imgROI img1[y:yH2, x:xW2] # 从背景图像裁剪出叠加区域图像img2Gray cv2.cvtColor(img2, cv2.COLOR_BGR2GRAY) # img2: 转换为灰度图像ret, mask cv2.threshold(img2Gray, 175, 255, cv2.THRESH_BINARY) # 转换为二值图像生成遮罩LOGO 区域黑色遮盖maskInv cv2.bitwise_not(mask) # 按位非(黑白转置)生成逆遮罩LOGO 区域白色开窗LOGO 以外区域黑色# mask 黑色遮盖区域输出为黑色mask 白色开窗区域与运算原图像素不变img1Bg cv2.bitwise_and(imgROI, imgROI, maskmask) # 生成背景imgROI 的遮罩区域输出黑色img2Fg cv2.bitwise_and(img2, img2, maskmaskInv) # 生成前景LOGO 的逆遮罩区域输出黑色# img1Bg cv2.bitwise_or(imgROI, imgROI, maskmask) # 生成背景与 cv2.bitwise_and 效果相同# img2Fg cv2.bitwise_or(img2, img2, maskmaskInv) # 生成前景与 cv2.bitwise_and 效果相同# img1Bg cv2.add(imgROI, np.zeros(np.shape(img2), dtypenp.uint8), maskmask) # 生成背景与 cv2.bitwise 效果相同# img2Fg cv2.add(img2, np.zeros(np.shape(img2), dtypenp.uint8), maskmaskInv) # 生成背景与 cv2.bitwise 效果相同imgROIAdd cv2.add(img1Bg, img2Fg) # 前景与背景合成得到裁剪部分的叠加图像imgAdd img1.copy()imgAdd[y:yH2, x:xW2] imgROIAdd # 用叠加图像替换背景图像中的叠加位置得到叠加 Logo 合成图像plt.figure(figsize(9,6))titleList [1. imgGray, 2. imgMask, 3. MaskInv, 4. img2FG, 5. img1BG, 6. imgROIAdd]imageList [img2Gray, mask, maskInv, img2Fg, img1Bg, imgROIAdd]for i in range(6):plt.subplot(2,3,i1), plt.title(titleList[i]), plt.axis(off)if (imageList[i].ndim3): # 彩色图像 ndim3plt.imshow(cv2.cvtColor(imageList[i], cv2.COLOR_BGR2RGB)) # 彩色图像需要转换为 RGB 格式else: # 灰度图像 ndim2plt.imshow(imageList[i], gray)plt.show()cv2.imshow(imgAdd, imgAdd) # 显示叠加图像 imgAddkey cv2.waitKey(0) # 等待按键命令
例程说明 1.30
本例程实现图像的叠加中间过程图像如上图所示最终的叠加图像如下图所示。图像叠加所涉及的操作步骤较多建议将上文的步骤说明与程序、中间过程图像相互对照进行阅读。使用位操作生成前景 img1Bg 时使用掩模图像 mask 对 imgROI 与 imgROI 进行 “与操作”而不是直接对 mask 与 imgROI 进行操作是因为 mask 为灰度图像而 imgROI 为彩色图像不能直接进行加法或位操作。使用位操作生成前景、背景图像时遮罩区域以外 imgROI 与 imgROI 进行 “自与操作”如果用 “自或操作” 参见程序注释语句的效果也是相同的。此处甚至也可以用加法操作 cv2.add 实现参见程序注释语句但位操作的运算速度更快。函数 threshold() 将灰度图像转换为二值图像Binarization只有黑白两色。该方法通过固定阈值 thresh 处理图像将像素点的灰度值设为 0 或 255。 6. 图像添加文字
函数 cv2.putText() 用于在图像上绘制文本字符串即添加文字。
函数说明
cv2.putText(img, text, pos, fontFace,fontScale,color[, thickness[, lineType[, bottomLeftOrigin]]]) → dst
函数 cv2.putText() 用于在图像上绘制文本字符串。
参数说明
img添加文本字符串的图像ndarray 多维数组text添加的文本字符串pos文本字符串左下角坐标如元组 (x100, y100)font字体类型fontScale字体缩放比例因子color文本字符串的颜色如元组 (2550 0)thickness线条粗细单位为像素数lineType线条类型bottomLeftOrigin可选参数默认值 True 表示数据原点位于左下角False 表示位于左上角返回值dst结果图像ndarray 多维数组
注意事项
OpenCV 不支持显示中文字符使用 cv2.putText() 时添加的文本字符串不能包含中文字符包括中文标点符号。在图像中添加中文字符可以使用 pythonopencvPIL 实现或使用 pythonopencvfreetype 实现。具体方法详见扩展例程 1.32。 基本例程1.31 图像添加文字 # 1.31 图像添加文字img1 cv2.imread(../images/imgLena.tif) # 读取彩色图像(BGR)text OpenCV2021, youcansxuptfontList [cv2.FONT_HERSHEY_SIMPLEX,cv2.FONT_HERSHEY_SIMPLEX,cv2.FONT_HERSHEY_PLAIN,cv2.FONT_HERSHEY_DUPLEX,cv2.FONT_HERSHEY_COMPLEX,cv2.FONT_HERSHEY_TRIPLEX,cv2.FONT_HERSHEY_COMPLEX_SMALL,cv2.FONT_HERSHEY_SCRIPT_SIMPLEX,cv2.FONT_HERSHEY_SCRIPT_COMPLEX,cv2.FONT_ITALIC]fontScale 1 # 字体缩放比例color (255, 255, 255) # 字体颜色for i in range(10):pos (10, 50*(i1))imgPutText cv2.putText(img1, text, pos, fontList[i], fontScale, color)cv2.imshow(imgPutText, imgPutText) # 显示叠加图像 imgAddkey cv2.waitKey(0) # 等待按键命令 扩展例程1.32 图像中添加中文文字 # 1.32 图像中添加中文文字imgBGR cv2.imread(../images/imgLena.tif) # 读取彩色图像(BGR)from PIL import Image, ImageDraw, ImageFontif (isinstance(imgBGR, np.ndarray)): # 判断是否 OpenCV 图片类型imgPIL Image.fromarray(cv2.cvtColor(imgBGR, cv2.COLOR_BGR2RGB))text OpenCV2021, 中文字体pos (50, 20) # (left, top)字符串左上角坐标color (255, 255, 255) # 字体颜色textSize 40drawPIL ImageDraw.Draw(imgPIL)fontText ImageFont.truetype(font/simsun.ttc, textSize, encodingutf-8)drawPIL.text(pos, text, color, fontfontText)imgPutText cv2.cvtColor(np.asarray(imgPIL), cv2.COLOR_RGB2BGR)cv2.imshow(imgPutText, imgPutText) # 显示叠加图像 imgAddkey cv2.waitKey(0) # 等待按键命令 【本节完】 版权声明 youcansxupt 原创作品转载必须标注原文链接(https://blog.csdn.net/youcans/article/details/120995650) Copyright 2022 youcans, XUPT 专栏地址『youcans 的图像处理学习课』 文章目录『youcans 的图像处理学习课 - 总目录』
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/89027.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!