自动裁剪–基于使用MATLAB标记连接的组件
基于标示连接部件的自动裁剪与数字图像处理有关。因此,在这篇文章中,我们将讨论基于标记连接部件的自动裁剪。在这之前,先看看这个主题中需要的基本术语。
自动裁剪
就MATLAB而言,自动裁剪节点是固定输入的位置,使图像的内容要么集中在图像的中心,要么不被调整大小。对于自动裁剪,MATLAB中的图像使用以下函数。
imcrop()
- imcrop函数-提取图像的一个矩形部分。使用这个函数,你可以指定裁剪区域的大小和位置。
- 连接部件–基于标签的连接部件,将图像中的物体扫描为一组相邻的像素。
- 贴标签–贴标签是指识别并在图像中物体项目的每个程序上贴上标签。在二进制图像中,它被分为4个连接和8个连接。在MATLAB中进行贴标签时,我们使用内置函数bwlabel()来给二进制图像中的物体贴标签。
标签的语法
L = bwlabel(BW) % return the label matrix that contains labels
for the 8-connected object found.
L = bwlabel(BW, con) % return the label matrix where specify
the con connectivity.
[L,n] = bwlabel(__) %label function also return number of object
found in BW.
假设在一幅图像中,所有的像素都是显示类似强度值的连接组件。
示例 1:
% MATLAB code for the binary image
% using 4-connected components
% Labeling -Code
clc;
clear all;
close all;
warning off;
a= [1 1 1 0 0 0 0 0
1 1 1 0 1 1 0 0
1 1 1 0 1 1 0 0
1 1 1 0 0 0 1 0
1 1 1 0 0 0 1 0
1 1 1 0 0 0 1 0
1 1 1 0 0 1 1 0
1 1 1 0 0 0 0 0];
% binary image.
[x,y]= bwlabel(a,8);
% two input parameters one
% is binary image and another is set value.
输出:
示例 2:
% Auto crop image via built-in function imcrop()
% Read the image
im = imread('GeeksforGeeks.png');
% show the image in figure
imshow(im);
pause(1)
% crop the image via crop function
imcrop = imcrop(im,[20 30 40 80]);
imshow(imcrop);
imread() 函数.
输出:
现在你可以看到使用不同强度值的裁剪功能的自动裁剪图像。
如果我们改变作物函数的强度值,那么你将得到一个不同的数字作为输出。
imcrop = imcrop(im,[1090 200 3000 400]);