一、图像信息
在计算机中用一般用M x N
的矩阵来表示一幅尺寸大小为M x N
的数字图像,矩阵元素的值就是该图像对应位置上的像素值。
对于计算机本地磁盘中的彩色图像,单机鼠标右键,选择“属性”,可以看到一幅图像的基本信息。

二、图像种类
1、灰度图:
灰度图是每个像素只有一个采样颜色的图像,这类图像通常显示为从最暗黑色到最亮的白色的灰度。灰度图像与黑白图像不同,在计算机图像领域中黑白图像只有黑色与白色两种颜色,但是灰度图像在黑色与白色之间还有许多级的颜色深度。
2、二值图像:
一幅二值图像的二维矩阵仅由 0、1 两个值构成,“0”代表黑色,“1”代表白色。二值图像可以看成是灰度图像的一个特例。
二值图像通常用于文字、线条图的扫描识别(OCR)和掩膜图像的存储。
3、彩色图:
彩色图的每个像素通常是由红(R)、绿(G)、蓝(B)三个分量来表示的。RGB
图像每一个像素的颜色值(由RGB三原色表示)直接存放在图像矩阵中,由于每一像素的颜色需由 R、G、B 三个分量来表示,M、N 分别表示图像的行列数,三个M x N
的二维矩阵分别表示各个像素的 R、G、B 三个颜色分量。RGB
图像的数据类型一般为 8 位无符号整形,通常用于表示和存放真彩色图像。
二、图像处理
1、图像灰度化处理
OpenCV 使用函数 cvtColor 来将输入图像从一个颜色空间转换为另一个颜色空间。可以用来对图像进行灰度化。
void cv::cvtColor(InputArray src, OutputArray dst, int code, int dstCn = 0)
其中,参数表示 src 输入图像,参数 dst 表示输出图像,参数 code 表示颜色空间转换的标识符,参数 dstCn 表示目标图像的通道数,若该参数值为 0,表示目标图像取源图像的通道数。
#include <opencv2\imgproc\imgproc.hpp>
#include <opencv2\highgui\highgui.hpp>
#include <opencv2/imgproc/types_c.h>
using namespace cv;
using namespace std;
int main() {
//读取源图像并转化为灰度图像
cv::Mat srcImage = imread("...\\dog.jpg");
if (!srcImage.data)
return 1;
//读取源图像并转化为灰度图像
Mat srcGray;
cvtColor(srcImage, srcGray, CV_RGB2GRAY);
//显示源图像及灰度图像
imshow("srcImage", srcImage);
imshow("srcGray", srcGray);
waitKey(0);
return 0;
}
运行结果如图所示:
2、图像二值化处理
OpenCV 使用函数 threshold 进行阈值化处理,实现二值化。
threshold( InputArray src, OutputArray dst, double thresh, double maxval, int type )
其中,参数表示 src 输入图像,参数 dst 表示输出图像,参数 thresh表示阈值,参数 maxval像素最大值,参数 type 表示阈值处理的方式。
#include <opencv2\imgproc\imgproc.hpp>
#include <opencv2\highgui\highgui.hpp>
#include <opencv2/imgproc/types_c.h>
using namespace cv;
using namespace std;
int main() {
//读取源图像并转化为灰度图像
cv::Mat srcImage = imread("C:\\Users\\86173\\Desktop\\cc.jpg");
if (!srcImage.data)
return 1;
//读取源图像并转化为灰度图像
Mat srcGray;
cvtColor(srcImage, srcGray, CV_RGB2GRAY);
// 二值化
Mat srcBinary;
threshold(srcGray, srcBinary, 127, 255, cv::THRESH_BINARY);
//显示源图像及二值化图像
imshow("srcImage", srcImage);
imshow("srcGray", srcBinary);
waitKey(0);
return 0;
}
文章来源:https://www.toymoban.com/news/detail-851433.html
- 🚀 个人简介:CSDN「博客新星」TOP 10 , C/C++ 领域新星创作者
- 💟 作 者:锡兰_CC ❣️
- 📝 专 栏:【OpenCV • c++】计算机视觉
- 🌈 若有帮助,还请关注➕点赞➕收藏,不行的话我再努努力💪💪💪
其他:
更多专栏订阅:文章来源地址https://www.toymoban.com/news/detail-851433.html
- 👍 【开卷数据结构】
- 💛 【备战蓝桥,冲击省一】
- 💕 从零开始的 c++ 之旅
- 💖 【OpenCV • c++】计算机视觉
到了这里,关于【OpenCV】 基础入门(二)图像基础概念 | 图像灰度化处理 | 图像二值化处理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!