how can i find pixels of image's border

5 Ansichten (letzte 30 Tage)
bay rem
bay rem am 28 Dez. 2015
Beantwortet: harjeet singh am 28 Dez. 2015
i have a set of images and i would like to test if there is a a black border on limits on the image, such this one:
i will appreciate any help ,thank you ^^

Akzeptierte Antwort

harjeet singh
harjeet singh am 28 Dez. 2015
you may use this code do set the th val according to the boarder noise
clear all
close all
clc
img=imread('images.jpg');
th=10;
a=img(:,:,1)>th & img(:,:,2)>th & img(:,:,3)>th;
a=bwareaopen(a,5000);
[r,c]=find(a==1);
b=img(min(r):max(r),min(c):max(c),:);
figure(1)
imshow(b)

Weitere Antworten (1)

Image Analyst
Image Analyst am 28 Dez. 2015
Your image has white columns on the left and right side - did you know that? So there are no all zero rows. To see if all pixels in a row or column are 0, use all():
allZeroColumns = all(grayImage == 0, 1);
allZeroRows = all(grayImage == 0, 2);
These are logical vectors. If you want, you can then use them to remove all zero rows or columns:
grayImage(:, allZeroColumns) = [];
grayImage(allZeroRows, :) = [];

Kategorien

Mehr zu Image Processing Toolbox finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by