【计算机视觉学习】OpenCV基础(一)简单的图像处理

前言

本文为本系列第一篇文章,涉及有关opencv中图像处理的基本概念及操作,用于快速入门。

像素与通道

基本概念

相比起人眼所看到的色彩斑斓的画面,在数理世界中,图像仅仅被表示为一个个矩阵。

矩阵的x-y坐标所表示位置对应的区域被称为像素,比如上图中橙色区域所示。

色彩是由不同颜色通道组合而成的。上图有三个颜色通道,分别是三原色红(pixel2)、绿(pixel1)、蓝(pixel0)。

  • 对于黑白图像,仅需要一个通道,存储的是0/1值,所以也被称为二进制图像
  • 对于灰度图像,需要两个通道
  • 对于彩色图像,则需要三个通道

OpenCV相关实现

在Opencv中有一个矩阵(Matrix)类------Mat,它可用来表示任意类型和大小的矩阵。

  • cv::Mat::at<typenamet>(row,col)可用于获取单个像素。
    • 灰度图像的typenamet可使用任何数字格式
    • 彩色图像的typenamet对应Vec3b类(名称释义:向量,三个组件,一个字节)

图像灰度处理

示例代码

cpp 复制代码
#include "opencv2/core.hpp"
#include "opencv2/highgui.hpp"
#include <string>
#include <sstream>
#include <iostream>

using namespace std;
using namespace cv;

int main()
{
    Mat gray = imread("图片路径.jpg", IMREAD_GRAYSCALE);

    //此处默认在当前项目路径下生成一张名为Gray.jpg的灰度图片,也可自定义路径
    imwrite("Gray.jpg", gray);
    //用于展示图片的框体名字叫Gray pic
    imshow("Gray pic", gray);
    //等待用户按下按键后退出
    waitKey(0);
    return 0;
}

关于imread中的可选参数:

  • 上述代码中使用的IMREAD_GRAYSCALE将图像转为8位无符号的灰度图像
  • IMREAD_COLOR将图像转为8位无符号的彩色图像
  • IMREAD_UNCHANGED如果原图是16位/32位的,返回对应深度的图像;如果不是,返回8位图像

参考资料

  • 《Learn Opencv 4 by Building Projects Second Edition》David Millan Escriva等著
相关推荐
AI人工智能+30 分钟前
基于深度学习与计算机视觉的表格识别技术:不仅能精准提取表格中的文字内容,更能深度解析复杂的表格结构,实现版面信息的完美还原
深度学习·计算机视觉·自然语言处理·ocr·表格识别
盼小辉丶1 小时前
OpenCV-Python实战(25)——基于深度传感器与凸性分析打造实时手势识别系统
人工智能·python·opencv·计算机视觉
XINVRY-FPGA2 小时前
XC7Z035-2FFG900I Xilinx/AMD Zynq-7000 SoC FPGA
人工智能·嵌入式硬件·计算机视觉·fpga开发·硬件工程·dsp开发·fpga
OpenBayes贝式计算15 小时前
端侧同尺寸 SOTA:OpenBMB 发布 1B 参数模型 MiniCPM5-1B;集成多级平行语料与多语言词典:SMOL 翻译数据集开源
计算机视觉·google·nvidia
OpenBayes贝式计算15 小时前
教程上新丨英伟达开源 LocateAnything,3B 模型可实现图像 + 视频的目标指向 / 开放词汇目标检测/指代表达定位 / OCR 文本定位等功能
计算机视觉·agent·nvidia
hans汉斯18 小时前
【计算机科学与应用】YOLO-Apple:一种用于苹果幼果检测的改进型目标检测方法
人工智能·yolo·目标检测·计算机视觉·目标跟踪·数据·病虫害检测
AI浩19 小时前
OpenCV 检测流程中损坏 JPEG 图片的定位与清理
人工智能·opencv·计算机视觉
春日见19 小时前
五分钟入门强化学习DDPG
大数据·人工智能·算法·机器学习·计算机视觉
weixin_407443871 天前
OCR材料信息提取工具(附件中含代码和数据)
人工智能·python·计算机视觉·ocr
搞科研的小刘选手1 天前
【重庆大学主办】第三届智能感知与模式识别国际学术会议(IPPR 2026)
物联网·机器学习·计算机视觉·机器人·人机交互·感知·传感