【OpenCV笔记】C语言OpenCV显示图像代码示例

本文记录了用C语言实现OpenCV下的图像显示。更新于2019.11.21。

#include "opencv2/highgui.hpp"

using namespace cv;

int main(int argc, char* argv[])
{
	const char* imagename = "D:/opencv3.4.7/opencv/sources/samples/data/lena.jpg";
	
	Mat img = imread(imagename); //从文件中读入图像

	if(img.empty()) //如果读入图像失败
	{
		fprintf(stderr, "Cannot load image %s\n",imagename);
		return -1;
	}

	imshow("image",img); //显示图像

	waitKey();
	return 0;
}
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
是的,OpenCV提供了C语言代码实现数字图像的沃尔什-哈达变换(Walsh-Hadamard Transform,WHT)的函数cv::dct()和cv::idct()。沃尔什-哈达变换是一种线性变换,可以将一幅图像转换为其频域表示,类似于离散余弦变换(DCT)和离散傅里叶变换(DFT)。 下面是一个简单的C语言示例代码,演示如何使用OpenCV中的cv::dct()和cv::idct()函数实现数字图像的沃尔什-哈达变换: ``` #include <opencv2/opencv.hpp> #include <iostream> using namespace cv; using namespace std; int main() { Mat image = imread("test.jpg", IMREAD_GRAYSCALE); if (image.empty()) { cerr << "Failed to load image" << endl; return -1; } Mat dctImage; dct(image, dctImage); // 沃尔什-哈达变换 Mat idctImage; idct(dctImage, idctImage); // 沃尔什-哈达逆变换 imshow("Original Image", image); imshow("DCT Image", dctImage); imshow("IDCT Image", idctImage); waitKey(0); return 0; } ``` 在这个示例中,我们首先使用cv::imread()函数加载一幅灰度图像,然后将其传递给cv::dct()函数进行沃尔什-哈达变换。变换后的结果存储在dctImage中。接着,我们使用cv::idct()函数将变换后的图像进行逆变换,得到恢复后的图像,存储在idctImage中。最后,我们使用cv::imshow()函数显示原始图像、沃尔什-哈达变换后的图像和逆变换后的图像。 需要注意的是,由于OpenCV的cv::dct()和cv::idct()函数默认使用的是一维离散沃尔什-哈达变换,因此我们需要对每行和每列分别进行变换,才能得到二维沃尔什-哈达变换的结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值