如何测量距离现实世界与matlab的照片?

18视图(30天)
首先我必须将像素转换成厘米,比我在厘米之间的长度。(图中),但在现实世界中,同一点之间有多少厘米?我不知道! ! !

接受的答案

图像分析
图像分析 2014年1月9日
编辑:图像分析 2014年1月11日
莎拉,你需要空间校准。运行我的演示,它将告诉你如何做。
[编辑]附加spatial_calibration_demo.m更新
12个评论
图像分析
图像分析 2017年9月20日
当然可以。例如我自动校准系统通过(1)找到一个4英寸平方滤纸,和(2)通过使用已知的爱色丽公司颜色尺寸检查表。你所需要的是一个已知的现实世界的距离 的事情 发现,一些方法的图像和测量距离像素(如通过阈值等等……)。

登录置评。

答案(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(消息));

登录置评。

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!