本文共 1330 字,大约阅读时间需要 4 分钟。
以下是一段使用OpenCV库进行图像处理的C++代码示例,代码旨在通过增强对比度来改进图像质量。
#include#include #include using namespace cv;using namespace std;int main() { Mat src = imread("E:\\vs2015\\opencvstudy\\2.jpg"); if (!src.data) { cout << "could not load image!" << endl; return -1; } imshow("InputImage", src); Mat dst = Mat::zeros(src.size(), src.type()); // 增强对比度 // 使用3x3的掩膜矩阵进行卷积操作 Mat kernel = Mat_ (3, 3) << 0, -1, 0, -1, 5, -1, 0, -1, 0; filter2D(src, dst, src.depth(), kernel); // 测量计算时间 double t = (double)getTickCount(); double timeconsume = (double)(getTickCount() - t) / getTickFrequency(); cout << "消耗时间: " << timeconsume << endl; imshow("Filter2D", dst); waitKey(0); return 0;}
读取图像:使用imread函数从文件路径中读取图像,src矩阵存储图像数据。
检查图像加载状态:如果src.data为空,表示无法加载图像,输出错误信息并返回。
显示原始图像:使用imshow函数显示原始图像,窗口名称为"InputImage"。
创建新图像矩阵:使用Mat::zeros创建一个与原始图像大小和类型相同的新矩阵dst。
增强对比度:
kernel,中心值为5,周围为-1,用于进行图像卷积。filter2D函数对原始图像src进行卷积操作,结果存储在dst矩阵中。计算和显示时间:使用getTickCount获取当前时间戳,计算处理时间并输出。
显示处理结果:使用imshow函数显示处理后的图像,窗口名称为"Filter2D"。
等待键盘输入:使用waitKey(0)函数保持图像窗口在屏幕上显示,直到用户输入键盘字符。
dst通过卷积操作增强了对比度,图像质量得到了改善。这个代码示例展示了如何利用OpenCV库进行基础的图像处理任务,适合学习和实践OpenCV图像编程。
转载地址:http://fmsfk.baihongyu.com/