How to display a value from a variable into a textbox

if true
% code
global citra
global tampung
I = rgb2gray(citra);
BW = tampung;
BW = im2bw(BW);
s = regionprops(BW, I, {'Centroid','WeightedCentroid'});
numberOfBlobs = size(s, 1);
labelShiftX = -7; %untuk mengkondisikan posisi titik tengah.
titikX = [1 2 3 4];
titikY = [1 2 3 4];
end
hold on
numObj = numel(s);
for k = 1 : numObj
plot(s(k).WeightedCentroid(1), s(k).WeightedCentroid(2), 'r*');
titikX(k)=s(k).WeightedCentroid(1);
plot(s(k).Centroid(1), s(k).Centroid(2), 'bo');
titikY(k)=s(k).WeightedCentroid(2);
end
hold off
Xmtkaki = (titikX(1)-titikX(4));
Ymtkaki = (titikY(1)-titikY(4));
Xmtkika = (titikX(4)-titikX(1));
Ymtkika = (titikY(4)-titikY(1));
Xmtkamu = (titikX(1)-titikX(2));
Ymtkamu = (titikY(1)-titikY(2));
Xmtkimu = (titikX(4)-titikX(2));
Ymtkimu = (titikY(4)-titikY(2));
Xmtkahi = (titikX(1)-titikX(3));
Ymtkahi = (titikY(1)-titikY(3));
Xmtkihi = (titikX(4)-titikX(3));
Ymtkihi = (titikY(4)-titikY(3));
I want to display value from this variable (Xmtkaki, Ymtkaki) to a text box, but i didn't know how to display it.
need u'r help
thanks in advance.

 采纳的回答

Let position1 and position2 each be (different) 4-element position vectors reflecting the location and size of the two text boxes. For example, [0 0 .1 .05]
The next two lines only need to be done once, to create the text boxes.
textbox1 = uicontrol('Style', 'text', 'Units', 'norm', 'Position', position1);
textbox2 = uicontrol('Style', 'text', 'Units', 'norm', 'Position', position2);
Then, each time you want to update the boxes,
set(textbox1, 'String', num2str(Xmtkaki));
set(textbox2, 'String', num2str(Ymtkaki));

5 个评论

how to know pixel value on that coordinate ?
You make up values depending on where you want the boxes to be positioned in the figure.
If you know the centroid, you can simply get the gray level of the original image at that centroid (or weighted centroid) location. Just be aware that the centroid is (x,y), NOT (row, column) so you need to get the graylevel as
grayLevelAtCentroid = yourImage(centroidY, centroidX);
By the way, did you run my demo (linked in my comment in my answer)? It puts a text string at the location of the centroid of each blob, and marks each centroid and weighted centroid with a "+" symbol.
did u mean this sir ?
thisBlobsPixels = blobMeasurements(k).PixelIdxList;
No, PixelIdxList is the list of linear indexes of the pixels, whereas PixelList is their gray levels.

请先登录,再进行评论。

更多回答(1 个)

You probably want to call impixelinfo() (in the Image Processing Toolbox). This will give live, updated x,y,gray level information to a text box on the screen (that you can position wherever you want).

2 个评论

I mean sir, how to know pixel value from titikX and titikY [1] ?
I don't know what they represent. Perhaps you need to run my image segmentation tutorial http://www.mathworks.com/matlabcentral/fileexchange/?term=authorid%3A31862, where I find object and their centroids and label them on the image.

请先登录,再进行评论。

标签

尚未输入任何标签。

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by