圆盘读码加定位
目录
1.读码
create_bar_code_model ([], [], BarCodeHandle)
*create_data_code_2d_model ('QR Code', [], [], DataCodeHandle)
read_data_code_2d_model ('C:/Users/Administrator/Desktop/2.dcm', DataCodeHandle)
*query_data_code_2d_params (DataCodeHandle, 'get_result_params', GenParamName)
set_bar_code_param (BarCodeHandle, 'element_size_min', 8)
set_bar_code_param (BarCodeHandle, 'persistence', 1)
set_bar_code_param (BarCodeHandle, 'start_stop_tolerance', 'high')
set_bar_code_param (BarCodeHandle, 'stop_after_result_num', 0)
* Image Acquisition 01: Code generated by Image Acquisition 01
open_framegrabber ('GigEVision2', 0, 0, 0, 0, 0, 0, 'progressive', -1, 'default', -1, 'false', 'default', 'GQ127000001', 0, -1, AcqHandle)
set_framegrabber_param (AcqHandle, 'TriggerMode', 'Off')
grab_image_start (AcqHandle, -1)
while (true)
grab_image_async (Image, AcqHandle, -1)
* Image Acquisition 01: Do something
find_bar_code (Image, SymbolRegions1, BarCodeHandle, ['Code 128','Code 39'], BarCodeStrings)
find_data_code_2d (Image, SymbolXLDs, DataCodeHandle, [], [], ResultHandles, DecodedDataStrings)
get_bar_code_result (BarCodeHandle, 'all', 'decoded_types', BarCodeResults)
* get_data_code_2d_param (DataCodeHandle, 'contrast_min', GenParamValue)
* write_data_code_2d_model (DataCodeHandle, 'C:/Users/Administrator/Desktop/2.dcm')
endwhile
close_framegrabber (AcqHandle)
2.定位圆
# -*- coding: utf-8 -*-
# @Time : 2019/9/25 16:06
# @Author : Don
# @File : test.py
# @Software: PyCharm
import cv2
import numpy as np
# 读取灰度图
source = cv2.imread("2.jpg")
img = cv2.cvtColor(source, cv2.COLOR_BGR2GRAY)
print(img.shape)
# 高斯滤波
gaussian = cv2.GaussianBlur(img, (5, 5), 0)
# 边缘检测
Canny = cv2.Canny(gaussian, 30, 150)
# 膨胀
# 设置卷积核
kernel = np.ones((20, 20), np.uint8)
# 图像膨胀处理
erosion1 = cv2.dilate(Canny, kernel)
#查找轮廓
h = cv2.findContours(erosion1, cv2.RETR_TREE, cv2.CHAIN_APPROX_NONE)
# 提取轮廓
contours = h[0][0]
# 打印返回值,这是一个元组
print(type(h))
# 打印轮廓类型,这是个列表
print(type(h[1]))
# 查看轮廓数量
print(len(contours))
# 画出轮廓:contours是轮廓,-1表示全画,然后是颜色,厚度
cv2.drawContours(source, contours, -1, (255, 255, 0), 15)
cv2.namedWindow('contours', 0)
cv2.imshow("contours", source)
cv2.waitKey(0)
cv2.destroyAllWindows()