欢迎来到 安卓源码空间!
安卓源码空间

                                                C++进行简单的图像处理


目录

前言

一、读取,显示和保存

二、图像变换

1.显示灰度图

2.显示HSV图

3.高斯模糊

4.图片缩放

三、遍历图像




前言

本文中介绍了用opencv处理图像的一些简单方法,并给出了代码。

一、读取,显示和保存

#include<opencv2/imgcodecs.hpp>
#include<opencv2/highgui.hpp>
#include<opencv2/imgproc.hpp>
#include<opencv2/opencv.hpp>
#include<iostream>
#include <string>
using namespace cv;
using namespace std;

int main() {
	String str = "E:/photo/1.jpg"; // 文件路径
	Mat image = imread(str);//读取图像
	Mat image_gray;
	Mat imgBlur;
	imshow("test_BGR", image);//显示原图
    imwrite("E:/photo/2.jpg", image);//保存图像
	waitKey(0);
	return 0;
}

waitKey(0)的作用是令窗口一直显示当前图像。

显示效果如下:

二、图像变换

1.显示灰度图

cvtcolor是opencv给出的图像变换函数,括号中第一个参数为需要变换的图像,第二个参数为变换之后的图像,第三个参数为变换的方式。下列代码中第三个参数为COLOR_BGR2GRAY,即将BGR图像转换为灰度图。

//显示灰度图
cvtColor(image, image_gray, COLOR_BGR2GRAY);//将图片转换为灰度图
imshow("test_gray", image_gray);//显示灰度图

显示效果如下:

2.显示HSV图

HSV是图像处理中常用的色彩空间,HSV分别指的是色相/饱和度/明度(Hue, Saturation, Value)。与转换为灰度图相近,代码如下:

//转换为HSV
cvtColor(image, image_gray, COLOR_BGR2HSV);//将图片转换为HSV图
imshow("test_HSV", image_gray);//显示HSV图

显示效果如下:

3.高斯模糊

对于高斯模糊(高斯平滑)此处不再赘述。下列代码中的size(9,9)是高斯内核的大小,宽和高可以不一致,但需要都是正奇数 。代码如下:

//高斯模糊
GaussianBlur(image, imgBlur, Size(9, 9), 3, 0);
imshow("test_Blur",imgBlur);//显示高斯模糊图

显示效果如下:

4.图片缩放

使用resize函数对图像进行缩放有两种方式。一种是按照比例对图像进行缩放,另一种是按照自定义的大小对图像进行缩放。

第一种,按照比例将图像的长宽均缩放到原来的0.5倍,代码如下:

//按比例调整图像大小
resize(image, image_resize_ratio, Size(), 0.5, 0.5);
imshow("test_resize_ratio", image_resize_ratio);//显示缩放后的图

第二种,按照自定义的大小将图像缩放600x600,代码如下:

//自定义调整图像大小
resize(image, image_resize, Size(600,600));
imshow("test_resize", image_resize);//显示缩放后的图

两种方法的显示效果如下:

原图的大小为800x800,所以第一种方法缩放之后的大小为400x400,上图中最左侧为原图。

三、遍历图像

这里仅展示一种较为简单的方法:用opencv的at成员函数访问图像数据,代码如下:

//遍历图像
for (size_t r = 0; r < image.rows; r++)//行
	for (size_t c = 0; c < image.cols; c++)//列
	{
		cv::Vec3b& bgr = image.at<cv::Vec3b>(r, c);
		bgr[1] = 0;
	}
imshow("test_1=0",image);

上述代码将图像中每一个像素点内的第二位数置为0,效果如下:

访问图像数据的方法有很多,还可以用指针的方法进行访问。


————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。                        
                            原文链接:https://blog.csdn.net/p_mouren/article/details/127125234

copyright@ 2020-2028  安卓源码空间网版权所有   

备案号:豫ICP备2023034476号-1号