How can I change the line color in the output of imhist?
11 次查看(过去 30 天)
显示 更早的评论
imhist provides the output in blue lines;i want to change it into say either red or green
0 个评论
采纳的回答
Image Analyst
2017-8-15
编辑:Image Analyst
2017-8-15
For precise control, plot it yourself with bar() and then set the 'EdgeColor' and 'FaceColor' properties in the bar() function:
img = imread('moon.tif');
[counts, grayLevels] = imhist(img, 64);
bar(grayLevels, counts, 'EdgeColor', 'r', 'FaceColor', 'c', 'BarWidth', 0.95);
Makes cyan bars with red outlines.
6 个评论
Image Analyst
2017-8-17
This worked for me:
img = imread('moon.tif');
imhist(img, 64);
myHist = findobj(gca, 'Type', 'Stem');
% Change the color to red
myHist.Color = [1 0 0]
but Suresh was wondering if it could all be done inside imhist() without a separate call to bar(), or to findobj() and myHist.Color.
Personally, I like the wider bars created by bar() rather than the single pixel wide lines by imhist's build in stem display.
更多回答(1 个)
Baptiste Ottino
2017-8-15
The histogram is a 'Stem' element. Use findobj to access its properties:
imhist(myImage);
myHist = findobj(gca, 'Type', 'Stem');
% Change the color to red
myHist.Color = [1 0 0]
If you use an older version of Matlab, you can replace the last line by:
% Change the color to red
set(myHist, 'Color', [1 0 0]);
Good luck!
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Migrate GUIDE Apps 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!