基于R语言提取PCB缺陷分类所需的特定特征颜色
PCB缺陷分类的特征颜色筛选
需求背景
现有一张含缺孔缺陷(missing hole defect)的PCB图片,以及需识别的PCB缺陷类型列表图片。为实现PCB缺陷分类,需从提取的图片颜色数据中,筛选出缺陷类型图里识别出的3种特征颜色。
使用colorfindr提取图片颜色示例
通过R语言的colorfindr工具可提取图片中的颜色,示例代码及输出结果如下:
library(colorfindr) # 目标图片路径 img_path="C:/Users/Rayane_2/Desktop/Data/PCB1/PCB/images/Mouse_bite/01_mouse_bite_04.jpg" # 提取图片中出现频率前20的颜色 colorfindr::get_colors(img_path,top_n=20)
输出结果:
# A tibble: 20 × 3 col_hex col_freq col_share <chr> <int> <dbl> 1 #005B0C 31106 0.00646 2 #005B0E 29117 0.00605 3 #01590B 27768 0.00577 4 #005A0B 24135 0.00502 5 #015C0D 23771 0.00494 6 #00580A 22397 0.00465 7 #005B0B 21529 0.00447 8 #00560F 21476 0.00446 9 #005A0D 21324 0.00443 10 #025A0C 21191 0.00440 11 #01590D 21026 0.00437 12 #005709 20009 0.00416 13 #00580E 19063 0.00396 14 #005909 18666 0.00388 15 #015C0F 18450 0.00383 16 #025A0E 17979 0.00374 17 #015710 16621 0.00345 18 #01590F 16619 0.00345 19 #00580C 16546 0.00344 20 #005A0A 15614 0.00324
筛选目标特征颜色
假设从缺陷类型图中识别出的3种特征颜色为#XXXXXX、#YYYYYY、#ZZZZZZ(替换为实际识别的颜色值),可通过以下代码从提取的tibble数据集中筛选对应颜色:
library(dplyr) # 定义目标特征颜色向量 target_colors <- c("#XXXXXX", "#YYYYYY", "#ZZZZZZ") # 提取颜色并筛选 extracted_colors <- colorfindr::get_colors(img_path, top_n=20) filtered_colors <- extracted_colors %>% filter(col_hex %in% target_colors) # 查看筛选结果 print(filtered_colors)
补充说明
如果提取的颜色存在细微色差(比如RGB值略有差异),可通过计算颜色相似度匹配,使用colorfindr的compare_colors()函数或自定义色差计算逻辑实现。
内容的提问来源于stack exchange,提问作者Tou Mou
相关产品推荐
相关产品推荐

