Draw 1 inch Square on Image

2 次查看(过去 30 天)
Hello,
How can I draw 1 inch square on my image and wanted to find number of grains present in that square ? Attached is my Image for reference. In attached RefImage_WithSquare, wanted to count no. of grains present in that square grains on boundary line must be considered as partial grain. Just as we consider in ASTM Grain Analysis.
  2 个评论
Rik
Rik 2018-9-12
This question is unlikely to get responses for several reasons: you didn't include the image in the first place, any size information is not present (how should pixels be translated to inches), it is unclear what you mean by grains and how they should be counted, and you show nothing about what you already start.
We have nothing to build on, and we have no indication that you care enough to put in some effort. Have a read here (or here for more general advice) and here. It will greatly improve your chances of getting an answer.
You can edit your question to fix these issues, which will automatically re-open your question.
Parth Desai
Parth Desai 2018-9-12
Updated my question with attached images for reference.

请先登录,再进行评论。

采纳的回答

Image Analyst
Image Analyst 2018-9-12
If your resolution is 96 dpi, use the rectangle() function with a width and height of 96:
imshow('untitled.png');
axis on;
hold on;
impixelinfo(); % Show x, y, RGB as you mouse around over image.
xLeft = 85; % Wherever you want.
yTop = 32;
rectangle('Position', [xLeft, yTop, 96, 96], 'EdgeColor', 'r', 'LineWidth', 2);
  6 个评论
Parth Desai
Parth Desai 2018-9-12
Error Undefined function 'yourImage' for input arguments of type 'double'.
Error in Dummy_0 (line 86) subImage = yourImage(yTop:yTop+95, xLeft:xLeft+95);
imshow('Output.png');
axis on;
hold on;
impixelinfo(); % Show x, y, RGB as you mouse around over image.
xLeft = 85; % Wherever you want.
yTop = 32;
rectangle('Position', [xLeft, yTop, 96, 96], 'EdgeColor', 'r', 'LineWidth', 2);
[rows, columns, numColors] = size('Output.png');
if numColors == 3
yourImage = rgb2gray('Output.png');
end
subImage = yourImage(yTop:yTop+95, xLeft:xLeft+95);
binaryImage = subImage ~= 255; % Or whatever color your background is.
% Count blobs and partial blobs.
[labeledImage, numBlobs] = bwlabel(binaryImage);
Image Analyst
Image Analyst 2018-9-12
Parth, you need to read your image into a variable.
Do this:
yourImage = imread('Output.png');
imshow(yourImage);
[rows, columns, numColors] = size(yourImage);

请先登录,再进行评论。

更多回答(0 个)

产品


版本

R2014b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by