OpenCV图像裁剪融合 OpenCV半小时掌握基本操作之图像裁剪融合
我是小白呀 人气:0【OpenCV】⚠️高手勿入! 半小时学会基本操作 ⚠️图像裁剪融合
概述
OpenCV 是一个跨平台的计算机视觉库, 支持多语言, 功能强大. 今天小白就带大家一起携手走进 OpenCV 的世界.
图像裁剪
cv2.resize
能帮助我们读图像进行裁剪.
格式:
cv2.resize(src, dsize[, dst[, fx[, fy[, interpolation]]]])
- src: 需要裁剪的图片
- dsize: 裁剪的大小
- fx: x 轴比例
- fy: y 轴比例
原图:
例子:
# 读取数据 dog = cv2.imread("dog.jpg") # 拉伸比例1:3 dog_resize = cv2.resize(dog, (0, 0), fx=1, fy=3) cv2.imshow("dog_resize", dog_resize) cv2.waitKey(0) cv2.destroyAllWindows()
输出结果:
数值计算
# 读取图片 img1 = cv2.imread("picture.jpg") img2 = cv2.imread("picture2.jpg") img1 = cv2.resize(img1, (382, 383)) # 转换成一样大小 # 调试输出 print("image 1:\n", img1[:5, :, 0]) print("image 2:\n", img2[:5, :, 0]) # 加10 img_new = img1 + 10 print("image_new:\n", img_new[:5, :, 0]) # 超过255的变成数值%256 img_add = img1 + img2 print("image_add:\n", img_add[:5, :, 0]) # 超过255的变成255 img_add2 =cv2.add(img1, img2) print("image_add2:\n", img_add2[:5, :, 0])
输出结果:
image 1:
[[206 206 206 ... 206 206 206]
[208 207 208 ... 207 207 208]
[208 207 208 ... 208 208 208]
[209 208 209 ... 209 209 209]
[209 209 209 ... 209 209 209]]
image 2:
[[187 187 187 ... 223 222 222]
[187 187 187 ... 224 224 223]
[187 187 187 ... 225 225 224]
[187 187 187 ... 225 225 225]
[187 187 187 ... 223 224 225]]
image_new:
[[216 216 216 ... 216 216 216]
[218 217 218 ... 217 217 218]
[218 217 218 ... 218 218 218]
[219 218 219 ... 219 219 219]
[219 219 219 ... 219 219 219]]
image_add:
[[137 137 137 ... 173 172 172]
[139 138 139 ... 175 175 175]
[139 138 139 ... 177 177 176]
[140 139 140 ... 178 178 178]
[140 140 140 ... 176 177 178]]
image_add2:
[[255 255 255 ... 255 255 255]
[255 255 255 ... 255 255 255]
[255 255 255 ... 255 255 255]
[255 255 255 ... 255 255 255]
[255 255 255 ... 255 255 255]]
图像融合
cv2.addWeighted
可以帮助我们融合两张图片.
格式:
cv2.addWeighted(src1, alpha, src2, beta, gamma, dst=None, dtype=None)
例子:
# 读取数据 cat = cv2.imread("cat.jpg") dog = cv2.imread("dog.jpg") # 输出维度 print(cat.shape) # (554, 640, 3) print(dog.shape) # (611, 640, 3) # 裁剪大小 dog = cv2.resize(dog, (640, 554)) print(dog.shape) # (554, 640, 3) # 图像融合 res = cv2.addWeighted(cat, 0.7, dog, 0.3, 0) cv2.imshow("res", res) cv2.waitKey(0) cv2.destroyAllWindows()
输出结果:
加载全部内容