0
下一代码获得我照片(被称为:“full_img”)葡萄的图像并计算出葡萄的面积:matlab将两个不同的相机给我不同的结果?
RGB = imread(full_img);
GRAY = rgb2gray(RGB);
threshold = graythresh(GRAY);
originalImage = im2bw(GRAY, threshold);
originalImage = bwareaopen(originalImage,250);
SE = strel('disk',10);
IM2 = imclose(originalImage,SE);
originalImage = IM2;
labeledImage = bwlabel(originalImage, 8); % Label each blob so we can make measurements of it
blobMeasurements = regionprops(labeledImage, originalImage, 'all');
numberOfBlobs = length(blobMeasurements);
pixperinch=get(0,'ScreenPixelsPerInch'); %# find resolution of your display
dpix=blobMeasurements(numberOfBlobs).Area; %# calculate distance in pixels
dinch=dpix/pixperinch; %# convert to inches from pixels
dcm=dinch*2.54; %# convert to cm from inches
blobArea = dcm; % Get area.
如果我与由不同相机在相同的条件拍摄相同的葡萄(从相同的距离和相同的闪电拍摄它),我会得到相同的结果? (如果我有一个5百万像素和12万像素的相机?)。
谢谢。因为相机更好,我应该得到更好的结果吗?或不确定? –
1台摄像机获得的特定图像的结果几乎相同。我的问题是:如果我购买更新更好的相机,我会比第一台相机获得更好的效果吗? –
Alon,我更仔细地看了你的代码。我看到您使用ScreenPixelsPerInch来获取每英寸的像素。这将返回您的显示器上的每英寸像素数**!换句话说,新闻部。它与blob的几何长度无关。如果你改变你的决议,这将改变。您的代码在查找blob的物理区域时不正确。 – Jorge