C语言OpenCV创建图片,c – Opencv使用cv :: Mat创建新图像
时间: 2024-01-21 08:17:36 浏览: 79
要使用OpenCV在C语言中创建新的图像,您可以使用cv::Mat类。下面是一个简单的示例代码,演示如何创建一个大小为512x512像素的黑色图像:
```c
#include <opencv2/opencv.hpp>
int main() {
cv::Mat image(512, 512, CV_8UC1, cv::Scalar(0));
cv::imshow("Image", image);
cv::waitKey(0);
return 0;
}
```
在这个示例中,我们在cv::Mat构造函数中传递图像的宽度和高度,以及图像的颜色类型和初始值。CV_8UC1表示8位无符号单通道图像(即灰度图像),cv::Scalar(0)表示初始值为0的黑色图像。然后,我们使用cv::imshow函数显示图像,并使用cv::waitKey函数等待用户按下按键后关闭窗口。
相关问题
用c语言实现opencv中 cv::pyrUp()
实现cv::pyrUp()函数的过程如下:
1. 首先,定义一个输入图像和一个输出图像。
2. 然后,获取输入图像的宽度和高度。
3. 接下来,定义一个卷积核,用于进行高斯滤波。
4. 然后,定义一个变量,用于存储卷积核的大小。
5. 接着,对输入图像进行高斯滤波,得到一个模糊的图像。
6. 然后,定义一个变量,用于存储输出图像的大小。
7. 接着,对模糊的图像进行插值操作,得到一个放大的图像。
8. 最后,将放大的图像存储到输出图像中。
以下是C语言代码实现:
```
void pyrUp(Mat& src, Mat& dst)
{
// 定义输入和输出图像
Mat srcImg = src.clone();
Mat dstImg;
// 获取输入图像大小
int srcWidth = srcImg.cols;
int srcHeight = srcImg.rows;
// 定义高斯核
float kernelData[] = {
1, 4, 6, 4, 1,
4, 16, 24, 16, 4,
6, 24, 36, 24, 6,
4, 16, 24, 16, 4,
1, 4, 6, 4, 1
};
Mat kernel(5, 5, CV_32F, kernelData);
// 定义卷积核大小
int kernelSize = 5;
// 对输入图像进行高斯滤波
filter2D(srcImg, srcImg, -1, kernel, Point(-1, -1), 0, BORDER_DEFAULT);
// 定义输出图像大小
int dstWidth = srcWidth * 2;
int dstHeight = srcHeight * 2;
// 对模糊的图像进行插值操作
resize(srcImg, dstImg, Size(dstWidth, dstHeight), 0, 0, INTER_LINEAR);
// 将放大的图像存储到输出图像中
dst = dstImg.clone();
}
```
实现图像增强的直方图均衡 c语言 opencv
这里提供一个简单的实现直方图均衡的C++代码,利用OpenCV库实现。
```c++
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace std;
using namespace cv;
int main()
{
Mat img = imread("lena.jpg", IMREAD_GRAYSCALE); //读取灰度图像
if (img.empty())
{
cout << "Could not read the image: " << endl;
return 1;
}
Mat hist_eq;
equalizeHist(img, hist_eq); //直方图均衡化
namedWindow("Original Image", WINDOW_NORMAL);
imshow("Original Image", img);
namedWindow("Equalized Image", WINDOW_NORMAL);
imshow("Equalized Image", hist_eq);
waitKey(0);
return 0;
}
```
以上代码中,首先读入灰度图像,然后使用`equalizeHist`函数实现直方图均衡化。最后,将原始图像和均衡化后的图像分别显示出来。
需要注意的是,该代码中使用了OpenCV库中的`imread`、`Mat`、`equalizeHist`、`namedWindow`和`imshow`等函数,需要先安装OpenCV库并将其头文件和库文件链接到项目中。