@import And #import

 

    Xcode5以后就可以使用@import了。

   #import 一个是必须导入头文件,第二个必须通过target中,去手动链接需要的库到项目中   例如 #import <QuartzCore/QuartzCore.h>

   @import 则免去这些步骤。      例如@import QuartzCore;

  Modules and auto-linking 默认情况下是enabled的。 如果是旧的项目,你可以通过设置"Language - Modules." 来设置Enable Modules 和Link       Frameworks Automatically 为Yes。

象 ap.add_argument("-i", "--image", required=True, help="path to input image")#添加参数-i/--image,表示输入图片的路径 ap.add_argument("-r", "--reference", required=True, help="path to reference OCR-A image")#添加参数-r/--reference,表示OCR-A字体的标准图片路径 args=vars(ap.parse_args())#将解析的参数保存到 args 变量中 #定义一个函数,用于将图片转换为灰度图像并进行二值化处理 def pre_process(image, inv=False): gray=cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)#将图片转换为灰度图像 if inv: gray=cv2.bitwise_not(gray)#取反,将黑色变为白色,将白色变为黑色 gray=cv2.GaussianBlur(gray, (5,5), 0)#高斯模糊 thresh=cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY_INV | cv2.THRESH_OTSU)[1]#OTSU二值化 return thresh #读取输入图片和OCR-A标准图片 image=cv2.imread(args["image"]) ref=cv2.imread(args["reference"]) #将输入图片和标准图片转换为灰度图像并进行二值化处理 gray=pre_process(image, inv=True) ref=pre_process(ref) #计算输入图片和标准图片的轮廓 refCnts=cv2.findContours(ref.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) refCnts=imutils.grab_contours(refCnts) refCnts=myutils.sort_contours(refCnts, method="left-to-right")[0] cnts=cv2.findContours(gray.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) cnts=imutils.grab_contours(cnts) locs=[] #遍历输入图片的轮廓,与标准图片的轮廓进行比较,得到每个字符的位置信息 for (i, c) in enumerate(cnts): (x, y, w, h)=cv2.boundingRect(c) ar=w/float(h) if ar>2.5 and ar<4.0: if (w>40 and w<55) and (h>10 and h<20): locs.append((x, y, w, h)) #将字符位置按照从左到右的顺序排序 locs=sorted(locs, key=lambda x:x[0]) #遍历每个字符,将其与标准图片的字符进行比较,得到字符的值 output=[] for (i, (gX, gY, gW, gH)) in enumerate(locs): groupOutput=[] group=[] roi=gray[gY-5:gY+gH+5, gX-5:gX+gW+5] roi=cv2.resize(roi, (57, 88)) #计算每个字符与标准字符的差异值 for (j, ref) in enumerate(refCnts): #将字符缩放至相同尺寸 refROI=cv2.resize(ref, (int(gW*1.7), gH)) #计算字符间的差异值 score=cv2.matchShapes(refROI, roi, cv2.CONTOURS_MATCH_I1, 0.0) group.append((score, j)) #将字符按照差异值从小到大排序 group=sorted(group, key=lambda x:x[0]) #选取差异值最小的字符作为预测字符 groupOutput.append(str(chr(65+group[0][1]))) #将字符按照从左到右的顺序组合在一起 output.extend(groupOutput) #输出识别结果 print("".join(output))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值