MATLAB: Extracting multiple numerical values from an image feature extractionimagesMATLABocr Is it possible to extract multiple numerical values from the this image? Best Answer reference resourcesclc; clear all; close all;img = imread('demo.jpg');J = rgb2hsv(img);s = mat2gray(J(:,:,2));bw = im2bw(s, 0.2);bw = imclose(bw, strel('line', 5, 0));bw = bwareaopen(bw, 6);stats = regionprops(bw);figure;imshow(img);for i = 1 : length(stats) rect = stats(i).BoundingBox; hold on; rectangle('Position', rect, 'EdgeColor', 'm', 'LineWidth', 1); if rect(3) > 20 rectangle('Position', rect, 'EdgeColor', 'r', 'LineWidth', 1); imi = imcrop(img, round(rect)); imi2 = imresize(imi, 3, 'bilinear'); txt = ocr(imi2); text(rect(1), rect(2)-rect(4)/2, txt.Words{1}, 'Color', 'g', 'FontSize', 16) endend参考:《计算机视觉与深度学习实战》 Related SolutionsMATLAB: リアルタイムに変化する変数への代入値を記録する方法 幾つか確認させてください。stats は イメージ領域のプロパティの計測を行う regionprops 関数の出力でしょうか。「for文中の変数bcはリアルタイムに変化」とは、 for ループが進行する毎に bc が変化するという意味でしょうか。「インクリメントのobjectは、必ずしも1ずつ増加するという動作を実行しておらず」とのことですが、for object = 1:length(stats) という for ループのなかでは、 object は 1ずつ増加します。何か他のことに触れていらっしゃいますでしょうか?例えば、すべての object の bc の値を確保するだけですと、下記の実行でも可能となります。N = length(stats);bc = zeros(2,N);for object = 1:length(stats) bc(:,object) = stats(object).Centroid; endや allbc = vertcat(stats.Centroid);Tutorial: MATLAB Answersで早く的確な回答を得るポイント(Tips for asking good questions to get accurate answers quickly) MATLAB: Measure the displacement of an object between two figures or more. reference resourcesclear all; clc; close all;rects = [];for i = [2 6 12] img = imread(sprintf('./G%d.JPG', i)); img = imresize(img, 600/size(img,1), 'bilinear'); J = rgb2lab(img); a = mat2gray(J(:,:,1)); b = im2bw(a, 0.7); b = imclose(b, strel('disk', 20)); b = imfill(b, 'holes'); b = imclearborder(b); b = bwareafilt(b,1); [r, c] = find(b); rect = [min(c) min(r) max(c)-min(c) max(r)-min(r)]; rects = [rects; rect]; figure(1); cla; imshow(img, []); hold on; rectangle('Position', rect, 'EdgeColor', 'm', 'LineWidth', 2); plot(rects(:,1)+rects(:,3)/2, rects(:,2)+rects(:,4)/2, 'w--', 'LineWidth', 4); pause(1e-3); dis = norm([rects(end,1)+rects(end,3)/2 rects(end,2)+rects(end,4)/2]-[rects(1,1)+rects(1,3)/2 rects(1,2)+rects(1,4)/2]); title(sprintf('moved %.2f', dis));endyou can read the book 《计算机视觉与深度学习实战》 Related QuestionFigの書き出しの時に不要な空白ができるファイルに入っているtifファイルをまとめてグレースケールとして保存するやり方が分かりません
Best Answer