大家好,我需要这个问题的帮助。我有一个matlab函数,它返回一个值' pourcentage'我想在php文件中检索此值。 这是我的功能
function A=computeSIFT(input_img_path)
fabric = imread(input_mg_path);
I = rgb2gray(fabric);
%I=histeq(I,255);
%I=floor(I/8);
maxi = max(I(:))
seuil = maxi-50
for k=1:size(I,1)
for j=1:size(I,2)
if(I(k,j)<seuil)
I(k,j)=0;
else
I(k,j)=255;
end
end
end
[~, threshold] = edge(I, 'sobel');
fudgeFactor = .5;
BWs = edge(I,'sobel', threshold * fudgeFactor);
figure, imshow(BWs), title('binary gradient mask');
se90 = strel('line', 3, 90);
se0 = strel('line', 3, 0);
BWsdil = imdilate(BWs, [se90 se0]);
figure, imshow(BWsdil), title('dilated gradient mask');
BWdfill = imfill(BWsdil, 'holes');
figure, imshow(BWdfill);
title('binary image with filled holes');
BWnobord = imclearborder(BWdfill, 4);
figure, imshow(BWnobord), title('cleared border image');
seD = strel('diamond',1);
BWfinal = imerode(BWnobord,seD);
BWfinal = imerode(BWfinal,seD);
figure, imshow(BWfinal), title('segmented image');
BWoutline = bwperim(BWfinal);
Segout = I;
Segout(BWoutline) = 255;
figure, imshow(Segout), title('outlined original image');
white=0;
black=0;
for z=1:size(I,1)
for m=1:size(I,2)
if I(z,m)==0
black=black+1;
else
white= white+1;
end
end
end
black
white
pourcentage = (white/(size(I,1)*size(I,2)))*100
A=pourcentage;
end
这是我的PHP代码:
$command = "matlab -nojvm -r \"A=computeSIFT('$target_path');exit\"";
system($command,$output);
$response['message'] = 'yeeeeeeeeeeeeees'.$output;
如何在$ output中检索pourcentage?
答案 0 :(得分:0)
您的matlab
功能应将其结果输出到控制台(使用disp
或fprintf
)。
(您应该尝试在shell(cmd / linux shell)中的$command
中运行函数行,看看是否有任何输出。)
php system
函数只返回输出的 last 行(并且它是一个返回值,它不是第二个参数)。
如果你只使用最后一行,你可以使用
$output = system($command);
如果你需要电话的enitre输出,你可以使用shell_exec
功能:
$output = shell_exec($command);