mat转化成浮点型矩阵,再显示图片

//2018.1.19_21:09 by Cooper Liu
//Questions? Contact me: [email protected]
//本程序为C++工程,编译环境需要配置openCV
#include <iostream>  
#include <opencv2/core/core.hpp>  
#include <opencv2/highgui/highgui.hpp>  
//#include<opencv2/opencv.hpp>//如果要包含所有库

using namespace cv;
using namespace std;
//将mat类型转换为二维数组的类型
int M = 4; int  N = 8;
int row = 4; int  col = 8;
//进行dct变换
double** mydct(double ptr2[4][], int M, int N)
{
	int p, q, m, n;
	double ap, aq;
	double output[M][N];
	for (p = 0; p < M - 1; p++)
	{
		for (q = 0; q < N - 1; q++)
		{

			if(p == 0)
			{
				ap = sqrt(1.0 / M);

			}
			else
			{
				ap = sqrt(2.0 / M);
			}
			if(q == 0)
			{
				aq = sqrt(1.0 / N);
			}
			else
			{
				aq = sqrt(2.0 / N);
			}
			double tmp = 0.0;
			for (m = 0; m < M - 1; m++)
			{
				for (n = 0; n < N - 1; n++)
				{
					tmp += ptr2[m][n] * cos((2 * m + 1)*p*PI / (2.0 * M)) * cos((2 * n + 1)*q*PI / (2.0 * N));

				}
			}
			output[p][q] = ap*aq*temp;
		}

	}
	return output;

}
//将二维数组转化成mat类型以图片形式输出
void main()
{
	//定义图片的行列数
	//int row = 4;
	//int col = 8;

	double matrix[4][8] = {

		{ 89.0, 101.0, 114.0, 125.0, 126.0, 115.0, 105.0, 96.0 },

		{ 97.0, 115.0, 131.0, 147.0, 149.0, 135.0, 123.0, 113.0 },

		{ 114.0, 134.0, 159.0, 178.0, 175.0, 164.0, 149.0, 137.0 },

		{ 121.0, 143.0, 177.0, 196.0, 201.0, 189.0, 165.0, 150.0 },


	};



	//对转换成的二维数组作dct变换,最终结果以二维数组的形式存入result
	double **result = mydct(matrix, row, col);//mydct似乎没有凑效
	//最后对result二维数组转化成mat类型并以图片形式输出,对比看与matlab的dct变化后矩阵是否相同
	int i, j;
	for (i = 0; i < row; i++)

	{

		for (j = 0; j < col; j++)

		{

			cout << result[i][j] << '/t';

		}

		cout << endl;

	}
}
 
 
G
M
T
 
 
Detect languageAfrikaansAlbanianAmharicArabicArmenianAzerbaijaniBasqueBelarusianBengaliBosnianBulgarianCatalanCebuanoChichewaChinese (Simplified)Chinese (Traditional)CorsicanCroatianCzechDanishDutchEnglishEsperantoEstonianFilipinoFinnishFrenchFrisianGalicianGeorgianGermanGreekGujaratiHaitian CreoleHausaHawaiianHebrewHindiHmongHungarianIcelandicIgboIndonesianIrishItalianJapaneseJavaneseKannadaKazakhKhmerKoreanKurdishKyrgyzLaoLatinLatvianLithuanianLuxembourgishMacedonianMalagasyMalayMalayalamMalteseMaoriMarathiMongolianMyanmar (Burmese)NepaliNorwegianPashtoPersianPolishPortuguesePunjabiRomanianRussianSamoanScots GaelicSerbianSesothoShonaSindhiSinhalaSlovakSlovenianSomaliSpanishSundaneseSwahiliSwedishTajikTamilTeluguThaiTurkishUkrainianUrduUzbekVietnameseWelshXhosaYiddishYorubaZulu
 
AfrikaansAlbanianAmharicArabicArmenianAzerbaijaniBasqueBelarusianBengaliBosnianBulgarianCatalanCebuanoChichewaChinese (Simplified)Chinese (Traditional)CorsicanCroatianCzechDanishDutchEnglishEsperantoEstonianFilipinoFinnishFrenchFrisianGalicianGeorgianGermanGreekGujaratiHaitian CreoleHausaHawaiianHebrewHindiHmongHungarianIcelandicIgboIndonesianIrishItalianJapaneseJavaneseKannadaKazakhKhmerKoreanKurdishKyrgyzLaoLatinLatvianLithuanianLuxembourgishMacedonianMalagasyMalayMalayalamMalteseMaoriMarathiMongolianMyanmar (Burmese)NepaliNorwegianPashtoPersianPolishPortuguesePunjabiRomanianRussianSamoanScots GaelicSerbianSesothoShonaSindhiSinhalaSlovakSlovenianSomaliSpanishSundaneseSwahiliSwedishTajikTamilTeluguThaiTurkishUkrainianUrduUzbekVietnameseWelshXhosaYiddishYorubaZulu
 
 
 
 
 
 
 
 
 
Text-to-speech function is limited to 200 characters
 
 
Options : History : Feedback : Donate Close

猜你喜欢

转载自blog.csdn.net/zyckhuntoria/article/details/81355980