Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用OpenCV (Python)在不损失质量的情况下更改特定颜色?

如何使用OpenCV (Python)在不损失质量的情况下更改特定颜色?
EN

Stack Overflow用户
提问于 2018-08-11 15:18:17
回答 1查看 495关注 0票数 1

所以,我有this floor plan

我想改变它的颜色,这样我就可以用OCR识别房间号了。为此,我想执行以下操作:将所有红色更改为白色,将所有其他颜色更改为黑色,因此剩下的只是房间号。我想尝试阈值处理,但我在文档中看到它只能在灰度图像上执行,所以我首先运行以下代码对其进行灰度处理:

代码语言:javascript
运行
AI代码解释
复制
    import cv2
    import os
    from ConvertSVG import svg_2_png

    # Convert the SVG to a PNG
    output_path = os.path.join('converted svgs', 'Andover HS Level 3.png')

    svg_2_png(os.path.join('svg', 'Andover HS Level 3.svg'), output_path)

    img = cv2.imread(output_path)
    gray_image = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

    cv2.imshow("Grayscale", gray_image)

    cv2.waitKey(0)

然后我得到了this output

正如你所看到的,灰度确实起作用了,但房间号变得更阻塞,OCR更难识别。

如何使用OpenCV-python将所有的红色改为白色,将所有其他颜色改为黑色,并尽可能地减少“阻塞”?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-11 16:38:24

以下是一种应该运行得相当好的方法:

结果:

代码:

代码语言:javascript
运行
AI代码解释
复制
import cv2
import numpy as np

# load image in BGR
input_image = cv2.imread("floorplan.png").astype(np.float32) / 255.0

# get scalar redness - this is smooth and mostly correct, 
# but it includes lots of stuff we don't want
redness = input_image[:, :, 2] - np.mean(input_image[:, :, :2], -1)

# create a blocky mask around the highly-red pixels
mask_coarse = cv2.dilate((redness > 0.7).astype(np.uint8), np.ones((3, 3)), iterations=5)
mask_fine = cv2.dilate(
    (mask_coarse * (redness > 0.3)).astype(np.uint8), np.ones((3, 3)), iterations=2
)

# mask redness with the blocky mask
output = redness * mask_fine * 255

cv2.imwrite("mask.png", output)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51801087

复制
相关文章
如何使用 OpenCV Python 检测颜色
在这篇文章中,我们将看到如何使用 Python 中的 OpenCV 模块检测颜色,进入这个领域的第一步就是安装下面提到的模块。
小白学视觉
2022/02/14
2.5K0
如何使用 OpenCV Python 检测颜色
如何更改 Ubuntu 的终端的颜色
但是,如果你想要一个独一无二的的终端体验或者符合你自身品位的一些东西,你也可以改变你的 Ubuntu 的终端的颜色。
用户1880875
2021/11/08
15.4K0
使用OpenCV进行颜色分割
在滤波、变换、缩放等任务中,图像分割具有重要的意义。图像分割是将不同的对象划分为不同的部分,并将这些区域以明显的颜色或者记号标记出来。图像分割是使用轮廓、边界框等概念进行其他高级计算机视觉任务(例如对象分类和对象检测)的基础。良好的图像分割为我们后续的图像分类以及检测奠定了基础。
小白学视觉
2020/07/09
2.6K0
使用OpenCV进行颜色分割
使用OpenCV进行颜色分割
在滤波、变换、缩放等任务中,图像分割具有重要的意义。图像分割是将不同的对象划分为不同的部分,并将这些区域以明显的颜色或者记号标记出来。图像分割是使用轮廓、边界框等概念进行其他高级计算机视觉任务(例如对象分类和对象检测)的基础。良好的图像分割为我们后续的图像分类以及检测奠定了基础。
AI算法与图像处理
2020/07/09
3K0
使用OpenCV进行颜色分割
【python-opencv】转换颜色空间
OpenCV中有超过150种颜色空间转换方法。但是我们将研究只有两个最广泛使用的,BGR↔灰色和BGR↔HSV。
西西嘛呦
2020/08/26
1.2K0
【python-opencv】转换颜色空间
python opencv修改保存的图片质量
cv2.CV_IMWRITE_JPEG_QUALITY  设置图片格式为.jpeg或者.jpg的图片质量,其值为0---100(数值越大质量越高),默认95   cv2.CV_IMWRITE_WEBP_QUALITY  设置图片的格式为.webp格式的图片质量,值为0--100  cv2.CV_IMWRITE_PNG_COMPRESSION  设置.png格式的压缩比,其值为0--9(数值越大,压缩比越大),默认为3
用户7886150
2021/01/15
2.6K0
OpenCV-Python学习(8)—— OpenCV 颜色表操作
1. 知识点 学习查找表 cv.LUT()【look up table】; 颜色查找表; 函数 cv.applyColorMap() 的使用。 2. cv.LUT() 函数说明 2.1 函数使用 cv.LUT(src, lut, dst) 2.2 参数说明 参数 说明 src 表示原始图像。 lut 表示查找表的地址,对于多通道图像的查找,它可以有一个通道,也可以与原始图像有相同的通道。 dst 表示输出图像。 2.3 查找表的使用和优点 构建查找表; 查找表应用; 查找表优势,预计算,空间换时间,避
Rattenking
2022/10/24
2.2K0
OpenCV-Python学习(8)—— OpenCV 颜色表操作
使用OpenCV做个简单的颜色提取器
做UI界面时,常常会遇到配色的问题,有专业美工还好,没有的话,你想要什么颜色,需要自己进行提取,如果没有PS,那我们就用OpenCV做个简单的颜色提取功能。
Vaccae
2022/09/28
1.1K0
使用OpenCV做个简单的颜色提取器
python使用opencv如何保存图片_OpenCV Python 保存图片
img = cv2.imread(“dashen.jpeg”) # 读取/加载 图片
全栈程序员站长
2022/11/17
4.3K0
python使用opencv如何保存图片_OpenCV Python 保存图片
基于OpenCV的特定区域提取
今天我们将一起探究如何使用OpenCV和Python从图像中提取感兴趣区域(ROI)。
小白学视觉
2020/08/28
3K0
如何使用OpenCV在Python中访问IP摄像头
首先,必须找出网址流是什么。通过在构造函数中提供摄像机的网址流,可以在OpenCV中访问IP摄像机cv2.VideoCapture。可以使用某些网络扫描实用程序(例如在linux上的arp-scan)找到摄像机的IP地址。网址进一步的细节,如Protocol,Credentials和Channel应该可以在相机说明书或软件/手机应用程序中找到。我们通过在网络上搜索相机的型号来找到相机的网址流。
小白学视觉
2020/09/14
6.9K0
使用JPA原生SQL查询在不绑定实体的情况下检索数据
在这篇博客文章中,我将与大家分享我在学习过程中编写的JPA原生SQL查询代码。这段代码演示了如何使用JPA进行数据库查询,而无需将数据绑定到实体对象。通过本文,你将了解如何使用原生SQL查询从数据库中高效地检索数据。
高久峰
2023/08/07
9880
在公司制度不规范的情况下,如何做好测试工作?
遇到这个好机会你还在等什么?如果说这个公司已经足够好了,那他还请你过来做什么?你的能力还足以让公司有更高的提升么?
软件测试君
2019/11/04
1.3K0
opencv(4.5.3)-python(六)--动态调整颜色
这里我们将创建一个简单的应用程序,显示你指定的颜色。你有一个显示颜色的窗口和三个轨道条来指定B、G、R的颜色。你滑动轨迹条,窗口的颜色就会相应地改变。默认情况下,初始颜色将被设置为黑色。
用户9875047
2022/07/04
4150
opencv(4.5.3)-python(六)--动态调整颜色
使用Python,OpenCV获取、更改像素,修改图像通道,剪裁ROI
这篇博客将介绍使用Python,OpenCV获取、更改像素,修改图像通道,截取图像感兴趣ROI;单通道图,BGR三通道图,四通道透明图,不透明图;
玖柒的小窝
2021/10/25
1.2K0
使用Python,OpenCV获取、更改像素,修改图像通道,剪裁ROI
点击加载更多

相似问题

在不损失质量的情况下缩小img?

43

在不损失质量的情况下缩放图像

10

如何使用Flash BitmapData在不损失质量的情况下放大图像?

12

在不损失质量的情况下调整图像大小

94

在不损失质量的情况下缩小Konvajs舞台

110
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档