当前位置: 首页 > news >正文

opencv灰度图与彩色图的处理

1.图像读取与转换

import cv2
color_img = cv2.imread('image.jpg')
gray_img = cv2.imread('image.jpg', cv2.IMREAD_GRAYSCALE)
cv2.IMREAD_COLOR : 彩色图像(默认)
cv2.IMREAD_GRAYSCALE : 灰度图像
cv2.IMREAD_UNCHANGED : 包含alpha通道2.彩色图与灰度图转换

(1)彩色图转灰度图
gray_from_color = cv2.cvtColor(color_img, cv2.COLOR_BGR2GRAY)

(2)灰度图转"伪彩色图"(单通道转三通道,但仍然是灰度)
pseudo_color = cv2.cvtColor(gray_img, cv2.COLOR_GRAY2BGR)

(3) BGR转RGB(用于显示)
rgb_img = cv2.cvtColor(color_img, cv2.COLOR_BGR2RGB)

(4) BGR转HSV
hsv_img = cv2.cvtColor(color_img, cv2.COLOR_BGR2HSV)

(5)BGR转LAB
lab_img = cv2.cvtColor(color_img, cv2.COLOR_BGR2LAB)
显示图像
cv2.imshow('Color Image', color_img)
cv2.imshow('Gray Image', gray_img)

等待按键
cv2.waitKey(0)
cv2.destroyAllWindows()

3.通道分离与合并

def channel_operations():
img = cv2.imread('image.jpg')

(1)分离BGR通道
b, g, r = cv2.split(img)

(2)显示各个通道
cv2.imshow('Blue Channel', b)
cv2.imshow('Green Channel', g)
cv2.imshow('Red Channel', r)

(3) 创建单通道图像(只显示红色)
red_only = cv2.merge([np.zeros_like(b), np.zeros_like(g), r])

(4) 合并通道
merged = cv2.merge([b, g, r])

cv2.imshow('Red Only', red_only)
cv2.imshow('Merged', merged)
cv2.waitKey(0)

4.识别

def license_plate_preprocess():
读取图像
img = cv2.imread('car.jpg')

转换为灰度图
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

高斯模糊去噪
blurred = cv2.GaussianBlur(gray, (5, 5), 0)

边缘检测
edges = cv2.Canny(blurred, 50, 150)

形态学操作(连接边缘)
kernel = np.ones((3,3), np.uint8)
closed = cv2.morphologyEx(edges, cv2.MORPH_CLOSE, kernel)

寻找轮廓
contours, _ = cv2.findContours(closed, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)

在原图上绘制轮廓
result = img.copy()
cv2.drawContours(result, contours, -1, (0, 255, 0), 2)

显示处理过程
cv2.imshow('Original', img)
cv2.imshow('Gray', gray)
cv2.imshow('Edges', edges)
cv2.imshow('Result', result)
cv2.waitKey(0)

http://www.cnnetsun.cn/news/138274.html

相关文章:

  • 03.统计学机器学习
  • [Poi2011]Lightning Conductor题解
  • 一文读懂大模型:收藏级教程,助你从入门到精通
  • Nginx云计算大数据——安装AND版本升级(普通升级+平滑升级+失败回滚)
  • GPT-5.2 实测数据流出:逻辑推理性能翻倍,大模型“幻觉”真的被终结了吗?
  • SQL SERVER——通过计划任务方式每月对配置数据、审计数据等进行备份
  • 前端——跨平台桌面应用开发实践
  • OpenAI 的反击!GPT-5.2 强行拉开代差,Gemini 3 和 Claude 4 还有机会吗?
  • 零售打工人加薪难?靠这张证,我在激烈竞争里站稳了脚跟
  • 基于springboot的多媒体素材库的开发与应用毕业论文+PPT(附源代码+演示视频)
  • 从离线语音到多模态智能体四博智联 AI 硬件整体解决方案全景解析
  • 我发现跨医院联合训练让诊断准确率飙升后来才知道是横向联邦学习在数据孤岛中的绝招
  • 性能压测工具:wrk
  • 论文引用标注工具排名2025:6大平台+自动规范推荐
  • Kotaemon AWS EC2部署实例:国际业务首选
  • 实在没货,简历(软件测试)咋写?
  • 网约车服务端线上流量巡检与测试验收技术
  • 公考日记7
  • 火电一次调频、自抗扰调频及群智能算法智能调频在MATLAB/Simulink中的应用
  • 科研实验室温湿度监控新范式:以太网 POE 技术全场景解决方案
  • RV1126 NO.57:ROCKX+RV1126人脸识别推流项目之读取人脸图片并把特征值保存到sqlite3数据库
  • 探索SAR ADC:45nm工艺下的高速高精度设计
  • 【小增长技术团队东哥分享】Electron vs Electron-Vite vs Electron-Egg:桌面端开发到底该选谁?
  • 测试价值的量化评估:从成本中心到价值证明的路径探索
  • 测试领导力:在敏捷洪流中筑造质量堤坝
  • C++常用设计模式
  • Spring Boot 自动配置深度解析:原理、实战与源码追踪
  • 无代码解决方案:破解企业数字化转型效率困局
  • SAM (Segment Anything Model):万物皆可分割-k学长深度学习专栏
  • Mysql 报错 “Public Key Retrieval is not allowed”