2

以前有代码“pixval on”来显示图像每个像素中的 rgb 值。
现在已经过时了。
我想知道如何为 LAB 转换的图像做同样的事情。

4

1 回答 1

1

首先,用图像创建一个图形

function so1
   global im;
   im = imread('peppers.png');
   figure;imshow(im);    
 end

然后,创建一个新的数据游标,选择“选择文本更新函数” 在此处输入图像描述

并选择以下回调文件:

function output_txt = NewCallback(obj,event_obj)
% Display the position of the data cursor
% obj          Currently not used (empty)
% event_obj    Handle to event object
% output_txt   Data cursor text string (string or cell array of strings).
global im;
pos = get(event_obj,'Position');
val = squeeze(im(pos(2),pos(1),:))';
srgb2lab = makecform('srgb2lab');
labVal = applycform(val,srgb2lab);
output_txt = sprintf('LAB = [%d,%d,%d]',labVal(1),labVal(2),labVal(3));

这里唯一的缺点是全局的丑陋使用,可能可以删除,但这不是问题。

于 2011-12-20T08:25:39.140 回答