有没有想过 Instagram 如何在你添加图像时自动选择背景?!
他们通过不同的算法分析你的图片并生成与图像匹配的背景。他们主要使用图像中存在的“颜色”来处理输出。
在本文中,你可以找到 2 种技术来检测输入图像的合适背景。在最终用户产品中使用这些算法时,这些方法有点幼稚,但对于学习新东西的开发人员来说,这些方法非常方便且易于复制。
让我们了解第一种方法
在这种情况下,我们只需将RGB矩阵分离为单独的颜色通道,然后使用Counter() 函数分别对3个RGB矩阵中的每个像素值进行频率计数。
然后,选择10个出现频率最高的值并取它们的平均值来获得结果像素值。
最后,只需使用np.zeros() 生成一个空白图像,并用获得的背景色填充它即可显示最终结果。这种技术只需40行代码就可以产生结果!
以下是第一种方法的完整代码:
import cv2
import numpy as np
from collections import Counter
file_path='YOUR_FILE_PATH'
def find_background(path=None):
if(path is not None):
img=cv2.imread(path)
img=cv2.resize(img,(800,600))
blue,green,red=cv2.split(img)
blue=blue.flatten()
green=green.flatten()
red=red.flatten()
blue_counter=Counter(blue)
green_counter=Counter(green)
re