C/C++教程

Matlab 绘制 1931 CIE色品图 并标点

本文主要是介绍Matlab 绘制 1931 CIE色品图 并标点,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Matlab绘制1931 CIE色品图 并标点

  • 1931 CIE色品图
  • Matlab绘制1931 CIE色品图 并标点

1931 CIE色品图

CIE(Color Matching System)建立的目的是为了用数字描述测量的颜色,是人类颜色视觉的数学概括,允许我们在大多数情况下定义和准确再现颜色。

在CIE1931 标准色度系统中,不同颜色的色品可以用二维坐标来表示。而每一种颜色都有一组特定的三刺激值,因此其色度坐标也是特定的,从而每种颜色都能在色品图中找到相应位置。

原理还有一些相关的基本知识就不再赘述了。可以参考其他文章。

https://blog.csdn.net/QinLanXin/article/details/88884669

https://blog.csdn.net/nsdcwj/article/details/46922865

总之,他是长这样的。但是很多时候,我们想要把自己的图片的颜色标示在上边,用来表示颜色的丰富度、亮度等信息,那我们应该如何做呢?
在这里插入图片描述

Matlab绘制1931 CIE色品图 并标点

使用matlab版本为2020b。

clc;
clear;
colorspace_ciedemo;
file_path = '...';% 图像文件夹路径 
img_path_list = dir(strcat(file_path,'*.png'));%获取该文件夹中所有png格式的图像  
img_num = length(img_path_list);%获取图像总数量  

if img_num > 0 %有满足条件的图像  
        for j = 1:20 %逐一读取图像  
             image_name = img_path_list(j).name;% 图像名  
  
             A = imread([file_path,image_name]);  
             B = colorspace('XYZ<-RGB',A);
   
             C1=B(1,1,1);
             C2=B(1,1,2);
             C3=B(1,1,3);
             C=C1+C2+C3;
             D=B/C; 
             X=D(1,1,1);
             Y=D(1,1,2);
             Z=D(1,1,3);
             hold on
             plot(X,Y,'k.','MarkerSize',10) %  'k.' 代表 black黑色点
             title('色品图')
        end       
      
end

可以看到,代码非常简单。

在使用时,把你需要在色度图像标出的图片保存成png格式放到一个文件夹中,然后在代码中 文件路径处 改为文件夹所在的路径,其他一些东西可以视自己的需要进行修改。

本人用代码跑出来的一个示例图像。
在这里插入图片描述

这篇关于Matlab 绘制 1931 CIE色品图 并标点的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!