Contenido principal

cc2bw

Convertir componentes conectados a una imagen binaria

Desde R2024a

    Descripción

    BW = cc2bw(CC) crea una imagen binaria a partir de los componentes conectados (objetos) en CC.

    ejemplo

    BW = cc2bw(CC,ObjectsToKeep=objectsToKeep) crea una imagen binaria a partir de un subconjunto de componentes conectados, especificado por objectsToKeep.

    ejemplo

    Ejemplos

    contraer todo

    Lea y muestre una imagen.

    I = imread("blobs.png");
    imshow(I)

    Figure contains an axes object. The hidden axes object contains an object of type image.

    Cree una estructura de componentes conectados.

    CC = bwconncomp(I);

    Filtre la estructura y conserve los objetos redondos. Muestre la imagen filtrada.

    CC = bwpropfilt(CC,"Circularity",[0.7 1]);
    imshow(cc2bw(CC))

    Figure contains an axes object. The hidden axes object contains an object of type image.

    Filtre de nuevo la estructura y conserve los objetos grandes. Muestre la imagen filtrada.

    CC = bwpropfilt(CC,"Area",[20 Inf]);
    imshow(cc2bw(CC))

    Figure contains an axes object. The hidden axes object contains an object of type image.

    Lea una imagen binaria y detecte los componentes conectados.

    BW = imread("text.png");
    CC = bwconncomp(BW);

    Mida el área de cada componente conectado y devuelva los resultados como una tabla.

    p = regionprops("table",CC,"Area");

    Cree una imagen binaria que contenga únicamente los componentes conectados más grandes del 2.º al 10.º. Muestre el resultado.

    [~,idx] = sort(p.Area,"descend");
    BWfilt = cc2bw(CC,ObjectsToKeep=idx(2:10));
    imshow(BWfilt)

    Figure contains an axes object. The hidden axes object contains an object of type image.

    Lea una imagen en escala de grises de granos de arroz y, después, convierta la imagen a binaria.

    I = imread("rice.png");
    BW = imbinarize(I);
    imshow(BW)

    Figure contains an axes object. The hidden axes object contains an object of type image.

    Mida el área y el cuadro delimitador de cada región.

    CC = bwconncomp(BW); 
    stats = regionprops("table",CC,"Area","BoundingBox");

    Seleccione las regiones a las que se aplican estas condiciones:

    • El área es superior a 50 píxeles.

    • El cuadro delimitador tiene menos de 15 píxeles de ancho y una altura superior o igual a 20 píxeles.

    area = stats.Area;
    bbox = stats.BoundingBox;
    selection = (area > 50) & (bbox(:,3) < 15) & (bbox(:,4) >= 20);
    BW2 = cc2bw(CC,ObjectsToKeep=selection);

    Muestre la imagen filtrada.

    imshow(BW2)

    Figure contains an axes object. The hidden axes object contains an object of type image.

    Argumentos de entrada

    contraer todo

    Componentes conectados (objetos), especificados como una estructura con cuatro campos.

    CampoDescripción
    ConnectivityConectividad de los componentes conectados
    ImageSizeTamaño de la imagen binaria
    NumObjectsNúmero de componentes conectados en la imagen binaria.
    PixelIdxListArreglo de celdas de 1 por NumObjects, en el que el k-ésimo elemento del arreglo de celdas es un vector que contiene los índices lineales de los píxeles del k-ésimo objeto.

    Objetos que conservar, especificados como uno de estos valores.

    • Entero positivo o vector de enteros positivos: conservar el objeto o los objetos cuyo índice está incluido en objectsToKeep. La longitud de objectsToKeep es inferior o igual a CC.NumObjects.

    • Vector lógico: conservar los objetos cuyo elemento correspondiente en objectsToKeep es true. La longitud de objectsToKeep debe ser igual a CC.NumObjects.

    Argumentos de salida

    contraer todo

    Imagen binaria, devuelta como un arreglo lógico del mismo tamaño que CC.ImageSize.

    Tipos de datos: logical

    Capacidades ampliadas

    expandir todo

    Historial de versiones

    Introducido en R2024a

    expandir todo

    Consulte también

    | |