2 Star 0 Fork 0

ping_ch/disp_fftw

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
func_trans.c 2.25 KB
一键复制 编辑 原始数据 按行查看 历史
ping2ch 提交于 2013-05-24 03:01 . version 0.1
#include <GL/glut.h>
#include <math.h>
//矩阵转换为图片
//real:实部权值,image:虚部权值,R、G、B:颜色分量系数,stand=1:规范最大值为255
void CP_m2i(double *mat , GLubyte *img , int w , int h , int L , float real , float image , float R , float G , float B , int stand)
{
int i,j , s=L/h , cell;
for(i=0 ; i<h ; i++){
for(j=0 ; j<w ; j++)
{
cell = (int)sqrt((*(mat+i*w*2+j*2+0))*(*(mat+i*w*2+j*2+0))*real*real+
(*(mat+i*w*2+j*2+1))*(*(mat+i*w*2+j*2+1))*image*image);
if(stand){ //对超过255的值规范化为255
if(cell <= 255){
(*(img+i*s+j*3+0)) += cell * B;
(*(img+i*s+j*3+1)) += cell * G;
(*(img+i*s+j*3+2)) += cell * R;
}
else{
*(img+i*s+j*3+0) = 255 * B;
*(img+i*s+j*3+1) = 255 * G;
*(img+i*s+j*3+2) = 255 * R;
}
}
else{ //直接赋值,不规范化
*(img+i*s+j*3+0) += cell * B;
*(img+i*s+j*3+1) += cell * G;
*(img+i*s+j*3+2) += cell * R;
}
}
}
}
//图片转换为矩阵
//real:实部权值,image:虚部权值,R、G、B:颜色分量系数
void CP_i2m(GLubyte *img , double *mat , int w , int h , int L , float R , float G , float B , float real , float image)
{
int i,j,s=L/h , cell;
for(i=0 ; i<h ; i++){
for(j=0 ; j<w ; j++){
cell =(*(img+i*s+j*3+0)) * B + (*(img+i*s+j*3+1)) * G + (*(img+i*s+j*3+2)) * R;
//(*(img+i*s+j*3+0))*0.144*B + (*(img+i*s+j*3+1))*0.587*G + (*(img+i*s+j*3+2))*0.299*R;
//sqrt((double)(((*(img+i*s+j*3+0))*(*(img+i*s+j*3+0))*B*B+(*(img+i*s+j*3+1))*(*(img+i*s+j*3+1))*G*G+(*(img+i*s+j*3+2))*(*(img+i*s+j*3+2))*R*R)/3));
*(mat+i*w*2+j*2+0) = cell * real;
*(mat+i*w*2+j*2+1) = cell * image;
}
}
}
//像素矩阵元初始/赋值为R、G、B
void init_Pix(GLubyte *img , int w , int h , int L , int R , int G , int B)
{
int i,j,s=L/h;
for(i=0 ; i<h ; i++){
for(j=0 ; j<w ; j++){
(*(img+i*s+j*3+0)) = B;
(*(img+i*s+j*3+1)) = G;
(*(img+i*s+j*3+2)) = R;
}
}
}
//像素矩阵元比例缩放,系数为R、G、B
void trans_Pix(GLubyte *img , int w , int h , int L , int R , int G , int B)
{
int i,j,s=L/h;
for(i=0 ; i<h ; i++){
for(j=0 ; j<w ; j++){
(*(img+i*s+j*3+0)) *= B;
(*(img+i*s+j*3+1)) *= G;
(*(img+i*s+j*3+2)) *= R;
}
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C
1
https://gitee.com/chen200910a/disp_fftw.git
git@gitee.com:chen200910a/disp_fftw.git
chen200910a
disp_fftw
disp_fftw
master

搜索帮助