元音(Vowel),又称母音,是音素的一种,与辅音相对。元音是在发音过程中气流通过口腔而不受阻碍发出的音。
发元音时,气流从肺部通过声门冲击声带,使声带发出均匀震动,然后震音气流不受阻碍地通过口腔,通过舌、唇的调节而发出不同的声音。发元音时声带必然震动的叫浊元音。有些语言发元音时声带不振动,发出清元音。
元音时域波形具有周期性;频谱图像中可以看出元音的短时能量和短时平均幅度比较大,但是短时过零率低,具有明显的共振峰。
本实验采用a,o,e三个元音测绘,得到图像如下:
对于RGB的三原色通道熵,用简单编程实现计算:
#include<stdio.h>
#include<iostream>
#include<math.h>
using namespace std;
//测试图片大小
const int width = 256;
const int height = 256;
//预留空间
int bnum[256] = { 0 };
int gnum[256] = { 0 };
int rnum[256] = { 0 };
unsigned char num[width * height * 3];
unsigned char B[width * height];
unsigned char G[width * height];
unsigned char R[width * height];
double b = 0;
double g = 0;
double r = 0;
int main()
{
FILE* test_rgb;
fopen_s(&test_rgb, "E://WeChat Files//wxid_hl6iriltk6cz22//FileStorage//File//2022-02//test.rgb", "rb");
fread(num, sizeof(unsigned char), width * height * 3, test_rgb);
for (int i = 0; i < width * height; i++)
{
B[i] = num[i * 3];
G[i] = num[i * 3 + 1];
R[i] = num[i * 3 + 2];
}
//读取三通道对应数据
for (int i = 0; i < 256; i++)
{
for (int j = 0; j < width * height; j++)
{
if (B[j] == i)
{
bnum[i]++;
}
}
for (int k = 0; k < width * height; k++)
{
if (G[k] == i)
{
gnum[i]++;
}
}
for (int l = 0; l < width * height; l++)
{
if (R[l] == i)
{
rnum[i]++;
}
}
}
//求概率,熵
for (int i = 0; i < 256; i++)
{
if (bnum[i] != 0)
{
b += (double)bnum[i] / (width * height) * (log(width * height) - log(bnum[i])) / log(2);
}
if (gnum[i] != 0)
{
g += (double)gnum[i] / (width * height) * (log(width * height) - log(gnum[i])) / log(2);
}
if (rnum[i] != 0)
{
r += (double)rnum[i] / (width * height) * (log(width * height) - log(rnum[i])) / log(2);
}
}
cout << "H(B)=" << b << endl;
cout << "H(G)=" << g << endl;
cout << "H(R)=" << r << endl;
fclose(test_rgb);
system("pause");
return 0;
}
结果如下: