用C语言计算各色油墨的灰度、色偏、色效率

用C语言计算各色油墨的灰度、色偏、色效率

用彩色密度计由C、M、Y三色滤色片对一原色油墨的知实地以块进行测量,将会得到大、中、小三个数值道,分别用Dh、Dm、Dl表示,计算公式如下:色偏Eh=(Dm-Dl) /( Dh-Dl) X100%,灰度Gr=Dl/Dh X100%,色效率CE=1-(Dm+Dl)/(2 X Dh)X 100%
在这里插入图片描述
我们先把数据按上图顺序保存在文本文档,然后读入到一个数组中,再对数组每行大到小排序,这样便于后面的计算。
源代码如下:

#include <stdlib.h>
#include<stdio.h>
float bijiao(float a[9][3]);//排序函数
float jisuan(float a[9][3]);//计算函数
int main()
{
 int i, j;
 float date;
 float date_storage[9][3];
 FILE *fp;
 if ((fp = fopen("zuoye.txt", "r")) == NULL)
 {
  printf("error");
 }
 printf("排序前\n");
 for (i = 0; i < 9; i++)
 {
  for (j = 0; j < 3; j++)
  {
   fscanf(fp, "%f", &date);
   date_storage[i][j] = date;
   printf("%f\t", date_storage[i][j]);
  }
  printf("\n");
 }
 printf("\n");
 printf("排序后\n");
 bijiao(date_storage);//从大到小排序
 for (i = 0; i < 9; i++)
 {
  for (j = 0; j < 3; j++)
  {
   printf("%f\t", date_storage[i][j]);
  }
  printf("\n");
 }
 printf("\n");
 jisuan(date_storage);
 }
float bijiao(float a[9][3])
{
 int i, j,x;
 float t;
 for (i = 0; i < 9; i++)
 {//a[i][0],a[i][1].a[i][2]
  for (j = 0; j < 2;j++)
  {
   for (x = j+1; x < 3; x++)
   {
    if (a[i][j] < a[i][x])
    {
     t = a[i][j];
     a[i][j] = a[i][x];
     a[i][x] = t;
    }
   }
  }
 }
 return 0;
}
float jisuan(float a[9][3])//计算函数
{
 int i;
 float S, H, X;
 for (i = 0; i < 9; i++)
 {
  S=(a[i][1] - a[i][2]) / (a[i][0] - a[i][2]);
  H = a[i][2] / a[i][0];
  X = 1 - (a[i][1] + a[i][2]) / (2 * a[i][0]);
  printf("色偏=%4.2f%%,灰度=%4.2f%%,色效率=%4.2f%%",100*S,100*H,100*X);
  printf("\n");
 }
 return 0;
}

运行结果如下:
在这里插入图片描述

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值