news 2026/3/19 1:46:00

Python | OpenCV | 图像处理 | 入门实验 | 对比度增强 | 裁剪

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python | OpenCV | 图像处理 | 入门实验 | 对比度增强 | 裁剪

0. 前言
“图像处理”听起来高大上,其实用 20 行 Python 就能跑起来。
今天带大家在 10 分钟 内完成一次真实可跑的实验:

把一张机器人照片 robot.jpg 切成左上角;

再把亮度 / 对比度拉满;

最后保存成新图 robot_enhanced.jpg。

读完你就能向室友炫耀:我写的代码能让照片“发光”!

1. 准备战场
表格

复制

项目 版本 备注
Python 3.8+ 自带即可
OpenCV-Python 4.10+ 一条命令装好
系统 Win / macOS / Linux 不限
1.1 一键安装 OpenCV
打开终端(Windows 用 PowerShell / CMD 都行)依次复制:

bash

复制

# 升级 pip,防止装包失败
python -m pip install --upgrade pip
# 用阿里镜像秒装
pip install opencv-python -i https://mirrors.aliyun.com/pypi/simple/
# 验证版本
pip show opencv-python
一键获取完整项目代码
看到 Version: 4.x.x 就说明 OK。

1.2 拿到素材
把下面两个文件放到 同一个文件夹(路径别带中文):

robot.jpg(实验原图)

image_process.py(下文代码,复制即用)

2. 核心 20 行代码
新建文件 image_process.py,复制保存:

Python

复制

import cv2
import os

# 1. 读图
img = cv2.imread('robot.jpg')
assert img is not None, 'robot.jpg 没读到,确认路径!'

# 2. 裁剪:左上角 1/4
h, w = img.shape[:2]
roi = img[0:h//2, 0:w//2]

# 3. 对比度+亮度增强
# alpha>1 对比度↑,beta>0 亮度↑
enhanced = cv2.convertScaleAbs(roi, alpha=1.8, beta=30)

# 4. 保存
out = 'robot_enhanced.jpg'
cv2.imwrite(out, enhanced)
print(f'✅ 已生成:{os.path.abspath(out)}')

# 5. 弹窗预览(按任意键关闭)
cv2.imshow('before', img)
cv2.imshow('after', enhanced)
cv2.waitKey(0)
cv2.destroyAllWindows()
一键获取完整项目代码

3. 跑起来!
终端切到该目录,执行:

bash

复制

python image_process.py
一键获取完整项目代码
看到两行提示:

✅ 已生成:D:\Demo\robot_enhanced.jpg

同时弹出两个窗口:
左边是原图,右边是“切头+提亮”后的效果。
按任意键 关闭窗口,实验完成!

4. 效果对比
表格

复制

原图 处理后
完整机器人,整体偏灰 仅左上角,金属质感变亮,边缘对比强烈
文件 1.2 MB 文件 0.3 MB(体积也小了)
5. 知识点复盘
表格

复制

术语 一句话解释
像素 图像最小色点,坐标 (x,y) 对应一个颜色值
图像矩阵 OpenCV 中一张图就是 numpy 三维数组
裁剪 本质是 Python 切片 img[y1:y2, x1:x2]
对比度增强 cv2.convertScaleAbs(src, alpha, beta)
通道顺序 OpenCV 默认 BGR,不是 RGB!
6. 想再玩点花样?
表格

复制

需求 改哪一行
裁剪正中 200×200 roi = img[h//2-100:h//2+100, w//2-100:w//2+100]
黑白复古风 加一行 gray = cv2.cvtColor(enhanced, cv2.COLOR_BGR2GRAY)
一键九宫格 写循环把原图切 3×3 保存 9 张
批量文件夹 用 glob 遍历 *.jpg 即可
7. 常见报错速查
表格

复制

报错 原因 解决
cv2.error: (-215:Assertion failed) 路径中文或图片没读到 换英文路径,确认 robot.jpg 存在
ModuleNotFoundError: cv2 装到了别的 Python 用 where python / which python 看路径,重装盘
弹窗闪退 没加 waitKey(0) 把代码抄全
8. 总结
今天我们只做了两件事:

用切片裁剪图像;

用 convertScaleAbs 提亮对比度。

但已经覆盖了 数字图像处理 7 大环节 里的
“图像采集 → 图像增强 → 图像表示” 三步。

下一步你可以挑战:

边缘检测 → cv2.Canny

人脸检测 → cv2.CascadeClassifier

磨皮美颜 → 双边滤波 cv2.bilateralFilter

9. 源码下载
懒得敲字?
GitHub 仓库(含 robot.jpg 与完整代码):
👉 https://github.com/yourname/opencv-10min-demo
Star 不迷路,后续更新九宫格、滤镜、动图生成!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/13 23:37:09

工艺过程镜像系统:制造过程的数字孪生

在工业制造迈向智能化、数字化的浪潮中,精准掌控工艺过程、实时保障产品质量、高效管理生产任务成为企业提升竞争力的关键。蕴硕物联凭借深厚的技术积累与创新精神,精心打造的“工艺过程镜像系统”,为工业制造领域带来了一场变革性的突破。01…

作者头像 李华
网站建设 2026/3/16 4:48:28

小程序计算机毕设之基于springboot+微信小程序的影院售票系统设计与实现基于微信小程序的影院售票系统设计与实现(完整前后端代码+说明文档+LW,调试定制等)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/3/14 13:52:04

创客匠人思辨:知识付费的终点——从“内容消费”到“数据资产共建”

知识付费行业正站在一个拐点上。用户为焦虑和信息差付费的初级阶段已经过去,单纯的“内容交付”越来越难以支撑可持续的商业模式。创客匠人观点中隐含了一条更深刻的线索:未来的知识服务,其价值闭环的终点可能不再是“交易完成”,…

作者头像 李华
网站建设 2026/3/12 22:07:21

从基础到进阶:CAD 框架下一步开发路线(新手实操版)

我们已经完成了 CAD 基础框架搭建和性能优化,现在你可能会问:“接下来该往哪个方向走?” 新手最忌 “贪多求全”(比如直接上手 3D 建模、复杂约束),也忌 “停滞不前”(只停留在画点线圆&#xf…

作者头像 李华
网站建设 2026/3/14 2:49:56

小程序计算机毕设之基于springboot的“智宠”一站式宠物服务小程序的设计与实现宠物医疗保健、宠物用品购买、宠物知识获取(完整前后端代码+说明文档+LW,调试定制等)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/3/13 22:38:04

小程序计算机毕设之基于springboot的华兴书城微信小程序基于SpringBoot的微信小程序书店(完整前后端代码+说明文档+LW,调试定制等)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华