大家好 我想实现这样一个图片展示的效果,中间是原图,周围四张图代表的是四种不同的的效果,再加上个背景图,想用python语言实现,或者是一些数据可视化大屏工具也可以。
纯numpy数组切片以及照片缩放实现,应博友要求,周围4张显示了 原始图转换后的HSV颜色空间图,中间显示了原始图。
# 纯numpy实现背景图及拼图
import cv2
import imutils
# 背景边框大小
# 每张图片大小
# 9宫格图片之间的缝隙
border = 100
img_size = 200
img_gap = 50
bg_size = img_size * 3 + img_gap * 2 + border * 2
bg_img = cv2.imread("images/bg.jpg")
bg_img = cv2.resize(bg_img, (bg_size, bg_size))
# 读取照片
img = cv2.imread("images/yl_300.jpg")
# 缩放照片为宽度*高度
img = cv2.resize(img, (img_size, img_size))
for i in range(3):
for j in range(4)[1:]:
t = i * 3 + j
# print(i, j, t)
# print(border + i * (img_size + img_gap), border + (i + 1) * (img_size) + i * img_gap,
# border + (j - 1) * (img_size + img_gap), border + j * img_size + (j - 1) * img_gap)
if (t == 2 or t == 4 or t == 6 or t == 8):
continue
# 读取照片,并缩放其大小为img_size*img_size
img = cv2.imread("images/yl_300.jpg")
img = cv2.resize(img, (img_size, img_size))
if t != 5:
img = cv2.cvtColor(img,cv2.COLOR_BGR2HSV)
# 计算要替换的照片高度:高度,宽度:宽度
bg_img[border + i * (img_size + img_gap): border + (i + 1) * (img_size) + i * img_gap,
border + (j - 1) * (img_size + img_gap):border + j * img_size + (j - 1) * img_gap] = img
cv2.imshow("img_" + str(t), bg_img)
# cv2.waitKey(0)
# 保留宽高比的缩放照片为宽度500像素
bg_img = imutils.resize(bg_img, width=500)
cv2.imshow("res", bg_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
不同的效果具体是什么效果