hello i have the following code that i saw in an example i tried to understand it and apply it to my code but i don't find a solution to my issue if someone can help thanks i want to have the washer at the end
%% image processing detection
clc; % Clear command window.
clear; % Delete all variables.
close all; % Close all figure windows except those created by imtool.
imtool close all; % Close all figure windows created by imtool.
workspace; % Make sure the workspace panel is showing.
%% read an image
I = im2double(imread('washer.png'));
subplot(3,3,1)
imshow(I);
title('Original Image');
%% Step 2: Detect Entire washer
[~,threshold] = edge(I,'sobel');
fudgeFactor = 0.7;
BWs = edge(I,'sobel',threshold * fudgeFactor);
% Display the resulting binary gradient mask.
subplot(3,3,2)
imshow(BWs);
title('Binary Gradient Mask');
%% Step 3: Dilate the Image
se90 = strel('line',3,90);
se0 = strel('line',3,0);
% Display the resulting dilated gradient mask.
BWsdil = imdilate(BWs,[se90 se0]);
subplot(3,3,3)
imshow(BWsdil)
title('Dilated Gradient Mask')
%% Step 4: Fill Interior Gaps
BWdfill = imfill(BWsdil,'holes');
subplot(3,3,4)
imshow(BWdfill)
title('Binary Image with Filled Holes')
%% Step 5: Remove Connected Objects on Border
BWnobord = imclearborder(BWdfill,4);
subplot(3,3,5)
imshow(BWnobord)
title('Cleared Border Image')
%% Step 6: Smooth the Object
seD = strel('disk',1);
BWfinal = imerode(BWnobord,seD);
BWfinal = imerode(BWfinal,seD);
subplot(3,3,6)
imshow(BWfinal)
title('Segmented Image');
%% Step 7: Visualize the Segmentation
subplot(3,3,7)
imshow(labeloverlay(I,BWfinal))
title('Mask Over Original Image')

8 Kommentare

Image Analyst
Image Analyst am 21 Apr. 2020
You forgot to attach 'washer.png', and you forgot to say why that code is not a solution for you. Please read this link.
BERG
BERG am 21 Apr. 2020
Thanks for the reply it's a solution but not the whole solution i have a picture of the object i want to recognize but not all of it just a part of it and i tried to adjust it but i didn't find a good answer i'll post the picture i have as an answer i attached the final image and the original
Image Analyst
Image Analyst am 21 Apr. 2020
It looks like that is the roadway under a wheeled vehicle. What is your definition of what kind of objects you want to find? Bright things?
BERG
BERG am 21 Apr. 2020
yes in the final image I sent you this is the object I would like to have at the end not brights objects. I would like to write a program that recognizes the objects I will send images of several objects to identify so that you can see a little bit the difference for example. here is my goal: an Automated object recognition within thermographic images for process monitoring of CFRP lay-up processes i have differents images and i want to recognise the objects in this different images (the image file that i sent )
Image Analyst
Image Analyst am 21 Apr. 2020
So you want things that are unusual in an otherwise-uniform-ish image? Try running stdfilt() on it. That will highlight things that very a lot within the window.
BERG
BERG am 21 Apr. 2020
yes ok i will try it
Mrutyunjaya Hiremath
Mrutyunjaya Hiremath am 26 Apr. 2020
Hello BERG,
Are you expecting something like this?
BERG
BERG am 28 Apr. 2020
Hello thanks it's something like that can i know How you have done it ? I tried to have the same Image but it has not worked

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

Mrutyunjaya Hiremath
Mrutyunjaya Hiremath am 28 Apr. 2020

0 Stimmen

Hello BERG,
here is code, you code only bit modified .
Use the attached 'mask.bmp' image.
clc; % Clear command window.
clear; % Delete all variables.
close all; % Close all figure windows except those created by imtool.
imtool close all; % Close all figure windows created by imtool.
workspace; % Make sure the workspace panel is showing.
%% read an image
imgOrg = im2double(imread('Tow.png'));
figure, imshow(imgOrg);
title('Original Image');
% ROI Region to avoid unwanted disturbance [170, 145, 300, 235]
imgCrop = imcrop(imgOrg, [170, 145, 300, 235]);
figure, imshow(imgCrop);
level = graythresh(imgCrop);
imgBW = im2bw(imgCrop, level-0.01);
figure, imshow(~imgBW);
% Mask Image - Create according to your Specific Application
imgMask = imread('mask.bmp');
figure, imshow(imgMask);
imgROI = imgMask .* (~imgBW);
figure, imshow(imgROI);
imwrite(imgROI, 'Tow.jpg');

4 Kommentare

BERG
BERG am 28 Apr. 2020
hello many thanks i will try it just another question is it the same for all image or the position is different ? i mean the coordinate
Mrutyunjaya Hiremath
Mrutyunjaya Hiremath am 28 Apr. 2020
Its same, for the shared images.
BERG
BERG am 28 Apr. 2020
ok many thanks after i come back i will try it again
BERG
BERG am 7 Mai 2020
Hello i'm here again i did not ask you last time first thks you for your help i tried and it worked i just have a question how does the attached mask.bmp help me?

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by