python - OpenCV,更改为图像中最接近的颜色
问题描述
我目前有以下代码,它搜索一系列颜色(蓝色)并将其替换为特定颜色,但是,我想将其替换为图像中最接近的颜色,而不是调色板中最接近的颜色图片。
我怎样才能做到这一点?
import cv2
import numpy as np
import matplotlib.pyplot as plt
image = cv2.imread('test5.jpeg')
hsv = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
lower_blue = np.array([80,50,50], dtype="uint8")
upper_blue = np.array([101,255,255], dtype="uint8")
mask = cv2.inRange(hsv, lower_blue, upper_blue)
#image[mask > 0] = (183, 213, 247)
plt.figure()
plt.imshow(cv2.cvtColor(image, cv2.COLOR_BGR2RGB))
解决方案
mask = cv2.inRange(hsv, lower_blue, upper_blue)
mask = cv2.bitwise_and(image, image, mask=mask)
gray_mask = cv2.cvtColor(mask, cv2.COLOR_BGR2GRAY)
image = cv2.inpaint(image, gray_mask, 100, flags=cv2.INPAINT_TELEA)
inpaint
我可以使用该方法解决我的问题。
https://www.pyimagesearch.com/2020/05/18/image-inpainting-with-opencv-and-python/
推荐阅读
- javascript - 将按钮的值分配给 vanilla JavaScript 中的变量
- telegram - 触摸后获取与 InlineKeyboardButton 电报机器人相关的消息
- excel - VBA代码根据一个列条目自动复制一行并粘贴到另一张表
- html - 在动态获取的 html 文本中显示链接
- php - php:单击提交按钮,但它不起作用
- c - 在可执行文件中使用静态库时出现链接错误
- asp.net - 如何将 .net 中的区域转换为 .net 核心?
- sql-server - 在另一个会话中执行代码时运行并行事务
- windows - 安装时 Inno Setup 在目标目录中创建的临时 tmp 文件
- python - 极小极大算法理解