sc6231565
管理员
管理员
  • 最后登录2021-01-21
  • 发帖数1124
  • 金币30350枚
  • 贡献勋章0枚
  • 社区明星
  • 最爱沙发
  • 原创写手
  • 喜欢达人
  • 忠实会员
  • 社区居民
阅读:1693回复:22

大家看看这个图,分割图像里的小黑块

楼主#
更多 发布于:2020-03-17 17:15
分割小黑块,计数有多少个,以压缩包里的图片为准,放出来图片有压缩.

更多图片.zip
喜欢1

最新打赏:0人

mctrix
技术员
技术员
  • 最后登录2021-01-21
  • 发帖数42
  • 金币367枚
  • 贡献勋章0枚
  • 社区居民
  • 忠实会员
沙发#
发布于:2020-03-17 19:13
如果黑块面积都一样,是否可以用 黑色区域总面积/单块小黑块面积。
sc6231565
管理员
管理员
  • 最后登录2021-01-21
  • 发帖数1124
  • 金币30350枚
  • 贡献勋章0枚
  • 社区明星
  • 最爱沙发
  • 原创写手
  • 喜欢达人
  • 忠实会员
  • 社区居民
板凳#
发布于:2020-03-17 20:58
mctrix:如果黑块面积都一样,是否可以用 黑色区域总面积/单块小黑块面积。回到原帖
有点快快会斜着 面积只有三分之二
0jash0
技术员
技术员
  • 最后登录2021-01-11
  • 发帖数82
  • 金币552枚
  • 贡献勋章0枚
  • 社区居民
地板#
发布于:2020-03-18 10:10
似乎和之前的藥丸很相似?
使用matching的方式應該不難
但這邊嘗試一下由較傳統的形態學方式處理
檢測數量為64?
沒有仔細一個一個數不確定數字對不對
可參考下列程序
dev_update_off ()
read_image (Image94633A699c330bb37091, 'C:/jash/test51/9_4633_a699c330bb37091.bmp')
rgb1_to_gray (Image94633A699c330bb37091, GrayImage)
gen_rectangle1 (ROI_0, 83.6872, 371.851, 261.495, 625.837)
reduce_domain (GrayImage, ROI_0, ImageReduced)
threshold (ImageReduced, Regions, 0, 60)
connection (Regions, ConnectedRegions)
count_obj (ConnectedRegions, Number)
gen_empty_obj (EmptyObject)
AS:=0
Cut:=0
for Index := 1 to Number by 1
    select_obj (ConnectedRegions, ObjectSelected, Index)
    Phi:=0
    for Phi := AS to AS+180 by 0.5
        gen_rectangle2 (Rectangle, 300, 200, rad(Phi), 5, 2)
        opening (ObjectSelected, Rectangle, RegionOpening)
        area_center (RegionOpening, Area, Row, Column)
        if (Area[0] > 0)
            concat_obj (EmptyObject, RegionOpening, EmptyObject)
            difference (ObjectSelected, RegionOpening, ObjectSelected)
        endif
        if (Phi=AS+180)
            connection (ObjectSelected, ConnectedRegions1)
            select_shape (ConnectedRegions1, SelectedRegions, ['area','rectangularity'], 'and', [15,0.5], [99999,1])
            union1 (SelectedRegions, RegionUnion)
            area_center (RegionUnion, Area2, Row2, Column2)
            if (Area2>40)
                Cut:=Cut+1
            endif
        endif
    endfor
endfor
count_obj (EmptyObject, Number1)
Num:=Number1+Cut
sq463875952
技术员
技术员
  • 最后登录2021-01-15
  • 发帖数53
  • 金币324枚
  • 贡献勋章0枚
4楼#
发布于:2020-03-18 22:28
此帖售价 10 金币,已有 4 人购买 [记录] [购买]
此段为出售的内容,购买后显示
只需要输入一个参数   单个黑色的缺陷面积  形态学参数全部自动设置,理论上能适用其余类似项目。
sc6231565
管理员
管理员
  • 最后登录2021-01-21
  • 发帖数1124
  • 金币30350枚
  • 贡献勋章0枚
  • 社区明星
  • 最爱沙发
  • 原创写手
  • 喜欢达人
  • 忠实会员
  • 社区居民
5楼#
发布于:2020-03-18 22:52
sq463875952:只需要输入一个参数   单个黑色的缺陷面积  形态学参数全部自动设置,理论上能适用其余类似项目。回到原帖
我重新上传了一波图片,你可以再测试下,通过面积的方法的确是可取的,只是有的时候会侧着,面积只有三分之二,你算法里的分水岭算法并不能正确分割,当然了,这里的重点是技术,不是分割显示
Mediation
高级工程师
高级工程师
  • 最后登录2021-01-19
  • 发帖数1250
  • 金币8501枚
  • 贡献勋章2枚
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 喜欢达人
  • 追星一族
6楼#
发布于:2020-03-19 09:36
此帖售价 3 金币,已有 9 人购买 [记录] [购买]
此段为出售的内容,购买后显示
sq463875952
技术员
技术员
  • 最后登录2021-01-15
  • 发帖数53
  • 金币324枚
  • 贡献勋章0枚
7楼#
发布于:2020-03-19 14:51
sq463875952:只需要输入一个参数   单个黑色的缺陷面积  形态学参数全部自动设置,理论上能适用其余类似项目。回到原帖
@sc6231565:图在哪?试试
sc6231565
管理员
管理员
  • 最后登录2021-01-21
  • 发帖数1124
  • 金币30350枚
  • 贡献勋章0枚
  • 社区明星
  • 最爱沙发
  • 原创写手
  • 喜欢达人
  • 忠实会员
  • 社区居民
8楼#
发布于:2020-03-19 14:56
sq463875952:@sc6231565:图在哪?试试回到原帖
上传了更多的图片
sq463875952
技术员
技术员
  • 最后登录2021-01-15
  • 发帖数53
  • 金币324枚
  • 贡献勋章0枚
9楼#
发布于:2020-03-19 15:25
sc6231565:上传了更多的图片回到原帖
试过了  都对着,按照你传的原图,事实上分水还能再筛选一波,筛选完在用面积准确率更高。
理论上 面积筛选随粘连数量上升准确率越来越低,但是 前一波的筛选已经让粘连数量不会超过5个,所以面积筛选只能说是一种方案,但是不是最优方案。但对于目前图像而言,都能检测。
list_files ('', ['files','follow_links','recursive'], ImageFiles)
tuple_regexp_select (ImageFiles, ['\\.(tif|tiff|gif|bmp|jpg|jpeg|jp2|png|pcx|pgm|ppm|pbm|xwd|ima|hobj)$','ignore_case'], ImageFiles)
for Index := 0 to |ImageFiles| - 1 by 1
    read_image (Image, ImageFiles[Index])
dev_open_window (0, 0, 512, 512, 'black', WindowHandle)
***单个平均面积
dd:=80
*************
qqq:=0
**定义缩放倍数
ss:=4
dev_set_draw ('fill')
rgb1_to_gray (Image, GrayImage)
binary_threshold (GrayImage, Region, 'max_separability', 'dark', UsedThreshold)
closing_circle (Region, RegionClosing, 10)
connection (RegionClosing, ConnectedRegions)
select_shape (ConnectedRegions, SelectedRegions3, 'area', 'and', 250, 99000)
union1 (SelectedRegions3, RegionUnion)
shape_trans (RegionUnion, SelectedRegions, 'rectangle1')
reduce_domain (GrayImage, SelectedRegions, ImageReduced)
crop_domain (ImageReduced, ImagePart)
emphasize (ImagePart, ImageEmphasize,60, 60, 60)
get_image_size (ImageEmphasize, Width, Height)
threshold (ImageEmphasize, Regions, 0, 20)
opening_rectangle1 (Regions, RegionOpening, 10, 10)
opening_circle (RegionOpening, RegionOpening1, 6)
****
area_center (RegionOpening1, Area1, Row1, Column1)
****可以进一步用分水领域求分割点 事实上缩放玩 就能用模板匹配了 懒得操作。
connection (RegionOpening1, ConnectedRegions1)
select_shape (ConnectedRegions1, SelectedRegions1, 'area', 'and',800, 99999)

select_shape (ConnectedRegions1, SelectedRegions2, 'area', 'and', 200,800)
distance_transform (SelectedRegions1, DistanceImage, 'city-block', 'true', Width, Height)
convert_image_type (DistanceImage, DistanceImageByte, 'byte')
invert_image (DistanceImageByte, DistanceImageInv)
scale_image_max (DistanceImageInv, DistanceImageInvScaled)
watersheds_threshold (DistanceImageInv, Basins,4)
intersection (Basins, SelectedRegions1, RegionIntersection)
count_obj (SelectedRegions1, Number)
gen_empty_obj (EmptyObject)
for Index1 := 1 to Number by 1
    select_obj (SelectedRegions1, ObjectSelected, Index1)
    area_center (ObjectSelected, Area, Row, Column)
    num:=Area/(650)+1
    qqq:=qqq+num
endfor
count_obj (SelectedRegions2, Number1)
www:=Number1+qqq
dev_display (ImageEmphasize)
dev_set_draw ('fill')
dev_set_colored (12)
dev_display (SelectedRegions2)
dev_set_draw ('margin')
dev_set_line_width (3)
dev_set_color ('red')
dev_display (SelectedRegions1)
disp_message (WindowHandle, '未粘连数:'+Number1, 'window', 10, 12, 'black', 'true')
disp_message (WindowHandle, '粘连数:'+qqq, 'window', 30, 12, 'black', 'true')
disp_message (WindowHandle, '总数:'+www, 'window', 50, 12, 'black', 'true')
dev_set_colored (12)
    * Image Acquisition 01: Do something
endfor
sq463875952
技术员
技术员
  • 最后登录2021-01-15
  • 发帖数53
  • 金币324枚
  • 贡献勋章0枚
10楼#
发布于:2020-03-19 15:39
sc6231565:上传了更多的图片回到原帖
楼上有一个 分水领域加分类的,我觉得准确率更高,可以试试他的。他的思路可以。
sc6231565
管理员
管理员
  • 最后登录2021-01-21
  • 发帖数1124
  • 金币30350枚
  • 贡献勋章0枚
  • 社区明星
  • 最爱沙发
  • 原创写手
  • 喜欢达人
  • 忠实会员
  • 社区居民
11楼#
发布于:2020-03-19 15:42
sq463875952:楼上有一个 分水领域加分类的,我觉得准确率更高,可以试试他的。他的思路可以。回到原帖
分水岭的 并不能改正确分割, 这个偏计数,分割到是其次
sq463875952
技术员
技术员
  • 最后登录2021-01-15
  • 发帖数53
  • 金币324枚
  • 贡献勋章0枚
12楼#
发布于:2020-03-19 15:54
sc6231565:分水岭的 并不能改正确分割, 这个偏计数,分割到是其次回到原帖
分割都能正确区分,计数自然不在话下,我觉得分割比计数要难。。。。。所有的结果图你可以看下。目前10个样本都正确.
附件名称/大小 下载次数 最后更新
123.rar (656KB)  16 2020-03-19 15:53
sc6231565
管理员
管理员
  • 最后登录2021-01-21
  • 发帖数1124
  • 金币30350枚
  • 贡献勋章0枚
  • 社区明星
  • 最爱沙发
  • 原创写手
  • 喜欢达人
  • 忠实会员
  • 社区居民
13楼#
发布于:2020-03-19 16:24
sq463875952:分割都能正确区分,计数自然不在话下,我觉得分割比计数要难。。。。。所有的结果图你可以看下。目前10个样本都正确.回到原帖
是的 ,都能计数成功,不错的思路
Mediation
高级工程师
高级工程师
  • 最后登录2021-01-19
  • 发帖数1250
  • 金币8501枚
  • 贡献勋章2枚
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 喜欢达人
  • 追星一族
14楼#
发布于:2020-03-21 17:01
经测试,楼主提供的这几张图片都可以检测到92个,包括分散的和比较集中的

图片:562.bmp

图片:780.bmp



此帖售价 3 金币,已有 13 人购买 [记录] [购买]
此段为出售的内容,购买后显示
上一页
游客

返回顶部
支付

欢迎打赏,请选择打赏金额

  • 1元
  • 6元
  • 10元
  • 66元
  • 100元

支付即代表同意《本站支付协议》 有疑问请联系客服