介绍
在当今世界,我们看到数以千计的优秀产品,以及销售这些产品的跨国公司。
它们的共同点是它们是从一个想法不断发展而来的。每天,我们的脑海中都会有几十个想法,让我们深入思考并深入想象。
从为窗帘选择颜色到选择算法,我们必须在脑海中想象它。有时最艰难的决定是在几秒钟内做出的,选择一种颜色会让我们思考几个小时。
为了消除问题并节省我们的时间,我们可以在可视化器和虚拟器的帮助下创建更强大的图片,而不是将我们的想法束缚在我们的脑中。
什么是可视化器?
可视化器是一种将某人的想象力变为现实的工具。它提供了最终产品外观图。
假设一家公司想要制造一辆能飞的汽车,并且需要为此进行投资。为了推销他们的想法,可视化工具将付诸行动。它将展示汽车的设计、它的工作原理以及它对市场的影响。
可视化工具更像是一种用于展示实际产品的工具。此外,就像编写算法有助于进一步编写代码一样,可视化工具有助于实现最佳最终产品。
优点和应用
可视化工具有助于节省成本和时间。
由于使用了可视化工具,产品中需要的改动更少。
它为最终产品创造了一个更为形象化的结构。
许多公司已经开始使用可视化工具在用户购买之前向用户展示他们的产品。因此,它还提供客户满意度,并建立消费者对公司的信任。
在本文中,我们将创建一个这样的可视化器,它将帮助我们在房间墙壁上尝试各种颜色和图案组合。
通过这个可视化工具,用户将能够扩展他们的想象力并选择最适合他们的选项。它可能看起来不像你期望的那样,但足以让你了解这个概念。
我们将使用 OpenCV 和 NumPy 的一些基本功能来完成这项任务。在文章的最后,我还将分享改进的范围和你可以工作的部分,以使这个项目更上一层楼。
项目的灵魂是我们将要创造的蒙版,蒙版的质量将决定结果的质量。所以有更好的蒙版,会有更好的结果。
开始吧
我们首先接受房间图像和纹理。它们的大小可能不同,不过我们都会调整它们的大小。然后我们将图像转换为HSV图像格式。
为什么是 HSV 而不是任何其他颜色格式?看看这个:https://www.analyticsvidhya.com/blog/2021/08/getting-started-with-object-tracking-using-opencv/。
之后,我们需要做的是获取墙壁的颜色,过滤掉该颜色并创建一个蒙版图像。
为了获取墙壁的颜色,我们将使用 cv2.setMouseCallback() 函数创建鼠标事件。我们还必须创建一个单击事件函数,该函数将在鼠标开始动作时被调用。
import cv2
import numpy as np
def click_event1(event, x, y , flags, param):
global draw, mask, lb, ub
if event==cv2.EVENT_LBUTTONDOWN:
print(img[y,x], hsv[y,x])
lb = hsv[y,x]-10
ub = hsv[y,x]+10
img = cv2.imread("room2.jpeg")
tex = cv2.imread("tex2.jpg")
img = cv2.GaussianBlur(img,(5,5),0)
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
cv2.imshow("img",img)
cv2.setMouseCallback('img', click_event1)
cv2.waitKey(0)
对于本文,我们将使用上面的图像和相邻的图案。在这里(https://drive.google.com/drive/folders/1uvYtpFHrKuOZgKzYLM-722Yfj7O5CPRl?usp=sharing)下载。
你可以选择你喜欢的任何图像和图案。在这一步中