估计阅读时长: 2 分钟

Connected Component Labeling(连通组件标记算法)主要用于识别并标记二值图像中相互连接的像素区域(即连通区域)。

imports "geometry2D" from "graphics";
imports "machineVision" from "signalKit";

let raw = readImage("—Pngtree—five chickens in different colors_3632916.jpg");
let bin = machineVision::ostu(raw, factor = 0.8);
let shapes = machineVision::ccl(bin);

print(`find ${length(shapes)} shapes.`);

bitmap(bin, file = "ostu_bin.bmp");
bitmap(file = "shapes.png", size = [3600, 2700]) {
    plot(shapes, scatter = TRUE, padding = "padding: 5% 5% 10% 10%;");
}

谢桂纲

Attachments

6 Responses

  1. Je pense que cet algorithme présente encore des limitations importantes. Par exemple, sur plusieurs poules présentes sur l’image originale, l’une d’elles, parce qu’elle a des plumes blanches, voit ces dernières devenir indiscernables du fond blanc après que l’image a été traitée par binarisation de l’algorithme. Cela signifie que les informations caractéristiques de ces plumes ont directement disparu de l’image. C’est la raison pour laquelle, après identification, le corps de la première et de la troisième poule sur l’image apparaît dans un état fragmenté. Si nous pouvions modifier cet algorithme pour qu’il effectue l’analyse et l’identification via une image en niveaux de gris plutôt qu’une image binaire noire et blanche, je pense que les résultats seraient bien meilleurs.

    来自法国
  2. I would like to gain a more detailed understanding of the computational principles behind this algorithm. Could you please provide a more in-depth explanation specifically on this topic?

    来自CLOUDFLARE.COM
    • The algorithm failed to achieve the expected results, primarily because the color details of some hens were not preserved in the binarized image, lacking sufficient information to distinguish them.

      来自广西

Leave a Reply to Beth964 Cancel reply

Your email address will not be published. Required fields are marked *

博客文章
December 2025
S M T W T F S
 123456
78910111213
14151617181920
21222324252627
28293031  
  1. 谢博,您好。阅读了您的博客文章非常受启发!这个基于k-mer数据库的过滤框架,其核心是一个“污染源数据库”和一个“基于覆盖度的决策引擎”。这意味着它的应用远不止于去除宿主reads。 我们可以轻松地将它扩展到其他场景: 例如去除PhiX测序对照:建一个PhiX的k-mer库,可以快速剔除Illumina测序中常见的对照序列。 例如去除常见实验室污染物:比如大肠杆菌、酵母等,建一个联合的污染物k-mer库,可以有效提升样本的纯净度。 例如还可以靶向序列富集:反过来想,如果我们建立一个目标物种(比如某种病原体)的k-mer库,然后用这个算法去“保留”而不是“去除”匹配的reads,这不就实现了一个超快速的靶向序列富集工具吗? 这中基于kmer算法的通用性和扩展性可能会是它的亮点之一。感谢博主提供了这样一个优秀的思想原型

  2. WOW, display an image on a char only console this is really cool, I like this post because so much…

  3. 确实少有, 这么高质量的内容。谢谢作者。;-) 我很乐意阅读 你的这个技术博客网站。关于旅行者上的金唱片对外星朋友的美好愿望,和那个时代科技条件限制下人们做出的努力,激励人心。