Как показать значение LA * B * определенного пикселя на изображении? - PullRequest
2 голосов
/ 20 декабря 2011

Раньше был код "pixval on" для отображения значения rgb в каждом пикселе изображения.
Теперь уже устарел.
Интересно, как сделать то же самое для изображения, преобразованного в LAB.

1 Ответ

1 голос
/ 20 декабря 2011

Сначала создайте фигуру с изображением

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

Затем создайте новый курсор данных, выберите «Выбрать функцию обновления текста». enter image description here

и выберите следующий файл обратного вызова:

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));

Единственным недостатком здесь является уродливое использование global, которое, вероятно, можно удалить, но это не проблема.

...