如何测量距离现实世界与matlab的照片?
18视图(30天)
显示旧的评论
接受的答案
答案(1)
卡洛琳大卫
2018年2月4日
有人能告诉我的代码长度测量图像的像素。最喜欢在毫米
9日评论
爵ξ
2018年4月26日
编辑:爵ξ
2018年4月26日
我用这个编码,现在我想把宽度在cm . .我已阅读并尝试校准演示,还有不知道如何把它转换成厘米。
< / / uploaded_files / 114879 / Capture.PNG matlabcentral /答案
>
如果真正的
%的代码
文件夹= (“C: \ \用户用户\ MATLAB”);
baseFileName = (“img2copy.jpg”);
fullFileName = fullfile(文件夹,baseFileName);
格式长g;
格式紧凑的;
字形大小= 20;
%图像分割
img = imread (fullFileName);
img = rgb2ycbcr (img);
为i = 1:尺寸(img, 1)
为j = 1:尺寸(img, 2)
cb = img (i, j, 2);
cr = img (i, j, 3);
如果(~ (cr > 132 & & cr < 173 & & cb > 76 & & cb < 126))
img (i, j, 1) = 235;
img (i, j, 2) = 128;
img (i, j, 3) = 128;
结束
结束
结束
img = ycbcr2rgb (img);
次要情节(2 2 1);
image1 = imshow (img);
轴在;
标题(“皮肤分割”,“字形大小”、字形大小);
集(gcf,“单位”,“归一化”,“OuterPosition”,(0 0 1 1));
% GRAYIMAGE分割图像
grayImage = rgb2gray (img);
次要情节(2,2,2);
image2 = imshow (grayImage);
轴在;
标题(的原始灰度图像,“字形大小”、字形大小);
集(gcf,“单位”,“归一化”,“OuterPosition”,(0 0 1 1));
%灰色二进制图像
binaryImage = grayImage < 245;
次要情节(2、2、3);
轴在;
image3 = imshow (binaryImage, []);
标题(的二进制图像,“字形大小”、字形大小);
%的标签图片
labeledImage = bwlabel (binaryImage);%标签分配每一个连接的组件在一个图像和一个独特的标签
测量= regionprops (labeledImage,的边界框(“大小),“区域”);
为k = 1:长度(测量)
thisBB = (k) .BoundingBox测量;
矩形(“位置”,(thisBB (1) thisBB (2), thisBB (3), thisBB (4)],…
“EdgeColor”,“r”,“线宽”,2)
结束
%我们提取第二大团,将手。
allAreas = [measurements.Area];
[sortedAreas, sortingIndexes] =排序(allAreas,“下”);
handIndex = sortingIndexes (2);%的手是第二大,脸是最大的。
%使用ismember()提取物的手从标记图像。
handImage = ismember (labeledImage handIndex);
%现在binarize
handImage = handImage > 0;
%显示图像。
次要情节(2、2、4);
image4 = imshow (handImage, []);
轴在;
轴图像;
标题(“手形象”,“字形大小”、字形大小);
%的标签图片
labeledImage = bwlabel (handImage);%标签分配每一个连接的组件在一个图像和一个独特的标签
测量= regionprops (labeledImage,的边界框(“大小),“区域”);
为k = 1:长度(测量)
thisBB = (k) .BoundingBox测量;
矩形(“位置”,(thisBB (1) thisBB (2), thisBB (3), thisBB (4)],…
“EdgeColor”,“r”,“线宽”,2)
结束
%进行测量的边界框
道具= regionprops (labeledImage,的边界框(“大小));
宽度= props.BoundingBox (3);
身高= props.BoundingBox (4);
持有在;
矩形(“位置”props.BoundingBox,“EdgeColor”,“r”,“线宽”2);
消息= sprintf ('宽度= % f。\ nThe高度= % f '、宽度、高度);
uiwait (helpdlg(消息));