设置首页收藏本站
开启左侧

请教 我已经用灰度直方图选择了需要的位置 但是报9003错误

[复制链接]
simms 发表于 2021-12-7 11:59:13 | 显示全部楼层 |阅读模式
  1. read_image(Image,'d:/2.jpg')
  2. dev_close_window ()
  3. dev_open_window (0, 0, 512, 512, 'black', WindowHandle)
  4. rgb1_to_gray (Image, GrayImage)
  5. threshold (GrayImage, Regions, 160, 161)
  6. create_data_code_2d_model ('QR Code', [], [], DataCodeHandleQR)
  7. set_data_code_2d_param (DataCodeHandleQR, ['module_size_min','module_size_max'], [20,40])
  8. find_data_code_2d (Regions, SymbolXLDs, DataCodeHandleQR, [], [], ResultHandles, DecodedDataStrings)
复制代码

t2(1).jpg
t3(1).jpg
2.jpg

奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
Criss 发表于 2021-12-7 12:52:27 | 显示全部楼层
二维码第一次听说通过阈值筛选然后识别的。二维码无需进行任何分割,图像本身就可以直接进行识别,你这个二维码很明显是边缘对比度不够。
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
 楼主| simms 发表于 2021-12-7 14:49:05 | 显示全部楼层
Criss 发表于 2021-12-7 12:52
二维码第一次听说通过阈值筛选然后识别的。二维码无需进行任何分割,图像本身就可以直接进行识别,你这个二 ...

大哥大哥  这个二维吗直接识别 不出来  ,所以我想先把他圈出来 然后灰度直方图处理 提高对比度。 小弟新手,如何提高边缘对比度比较好?
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
Wey94 发表于 2021-12-8 15:19:49 | 显示全部楼层
  1. read_image (Image, 'D:/121305w0fenau0b5h2wnnu.jpg')

  2. decompose3 (Image, Image1, Image2, Image3)
  3. scale_image (Image1, ImageScaled, 3, -400)
  4. emphasize (ImageScaled, ImageEmphasize, 7, 7, 1)

  5. create_data_code_2d_model ('QR Code', [], [], DataCodeHandle)
  6. find_data_code_2d (ImageEmphasize, SymbolXLDs, DataCodeHandle, [], [], ResultHandles, DecodedDataStrings)
复制代码

就挺容易就能识别出来啊
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
 楼主| simms 发表于 2021-12-8 16:17:37 | 显示全部楼层
大神 你太牛了  赶紧收藏学习 看看思路
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
糯米100 发表于 2023-10-18 09:36:38 | 显示全部楼层
http://www.skcircle.com/?id=250
bin_threshold、threshold返回的是被分割后的Regions,因此从Rgions获取get_image_pointer1或get_image_pointer3时就会报错,提示函数没有灰度值。            这时需要将分割后的Regions连接起来生成一个大的区域,然后将区域进行相关操作转化成Image,HALCON提供了三种方法:region_to_bin、region_to_label、region_to_mean.

1. region_to_bin(Region,BinImage,ForegroundGray,BackgroundGray,Width,Height)
它将一个区域转化成一个二进制字节图像。给区域内的所有像素赋给前景灰度值,如果输入区域大于生成的图像,则会在图像边界处截断;

2. region_to_label(Region,ImageLabel,Type,Width,Height)
它将区域转化为一个标签图像,通过索引值:第一个区域赋予灰度值1,第二个区域赋予灰度值2,依此类推……这里仅仅使用正的灰度值,直到256。区域大于生成图像则会被适当地截断。如果区域重叠,则较高值的图像会被输出。如果想重叠,可以调用expand_region进行处理。Type='int2'、'int4'、‘byte'

3. region_to_mean(Regions,Image,ImageMean)
用它们的均值来填充图像区域,返回Image。这个操作符主要用来可视化分割结果

奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表