项目实战:信用卡数字识别之pycharm配置的参数以及如何用anaconda中的opencv

本文介绍了如何在PyCharm中利用已安装的Anaconda环境,特别是如何选择Anaconda解释器,避免重复安装OpenCV,并强调了项目配置参数、路径避免汉字以及运行时注意的点,如imutils包的安装和cv2.findContours函数的版本差异。
摘要由CSDN通过智能技术生成

目录

前言

一、新建项目

二、配置参数

三、运行成功要注意的点

四、整体代码



前言

前面我在anaconda中安装了opencv,(anaconda3-5.2.0+python3.6安装opencv-python3.4.1.15步骤及过程),现在要在pycharm中用到opencv,不想再装一遍,想用anaconda中的,除此之外,anaconda中还有很多其他已经配置好的东西可以用。

一、新建项目

点击任务栏file->new project,在Location选择新建项目的文件夹(文件夹提前建好一个空的)。

然后下面它默认的应该是第一个按钮,你要用anaconda中的东西,所以你要选择anaconda的解释器。

然后在Interpreter找anaconda中的python.exe

 

有一种方法是,按常规建好项目后,再去file->setting中选择anaconda中的python.exe,我试了下,这样做只能用anaconda中的python,但是里面的包不能用,opencv用不了。只能在pycharm里再装,或者用pip装。

在建项目的时候就选择anaconda解释器,之后再去file->setting查看,会看到里面已经选好了,并且有很多anaconda的包可以用。

参考文章:想在pycharm中使用anaconda安装过的opencv包 

二、配置参数

( 此处参考文章项目实战-信用卡数字识别--pychram如何配置相应的参数 中第二步 )

我这里右击文件名找不到Edit project,所以找图中按钮,把文件运行一下就可以有该页面的信息。

红框中输入参数。

from imutils import contours import numpy as np import argparse import cv2 as cv import myutils def cv_show(name,img): cv.imshow(name,img) cv.waitKey(0) cv.destroyAllWindows() # 先处理template tempalte_img = cv.imread("E:/opencv/picture/ocr_a_reference.png") tempalte_gray = cv.cvtColor(tempalte_img, cv.COLOR_BGR2GRAY) tempalte_thres = cv.threshold(tempalte_gray, 0, 255, cv.THRESH_OTSU | cv.THRESH_BINARY_INV)[1] temp_a, tempalte_contours, temp_b = cv.findContours(tempalte_thres.copy (), cv.RETR_EXTERNAL, cv.CHAIN_APPROX_SIMPLE) cv.drawContours(tempalte_img, tempalte_contours, -1, (0, 255, 0), 2) tempalte_contours = contours.sort_contours(tempalte_contours, method="left-to-right")[0] digits = {} # 构建一个字典 for (i, c) in enumerate(tempalte_contours): (x, y, w, h) = cv.boundingRect(c) tempalte_roi = tempalte_thres[y:y + h, x:x + w] #之前一直检测不出正确答案,原因是这里的roi应该是tempalte_thres一部分 #而不是template_gray的一部分! tempalte_roi = cv.resize(tempalte_roi, (57, 88)) digits[i] = tempalte_roi cv_show('template_single',tempalte_roi) #cv_show('template_single',tempalte_roi) #对银行卡进行处理,之所以要做成数字长条,是想通过长条的尺寸比例大小来将自己想要的数字给抠出来。 rectkernel = cv.getStructuringElement(cv.MORPH_RECT,(9,3)) squrkernel = cv.getStructuringElement(cv.MORPH_RECT,(5,5)) image = cv.imread("E:/opencv/picture/credit_card_02.png") image = myutils.resize(image, width=300) image_gray = cv.cvtColor(image,cv.COLOR_BGR2GRAY) image_tophat= cv.morphologyEx(image_gray,cv.MORPH_TOPHAT,rectkernel) image_close = cv.morphologyEx(image_tophat,cv.MORPH_CLOSE,rectkernel) cv.imshow("image_tophat",image_tophat) cv.imshow('image_close',image_close) image_thres= cv.threshold(image_close,0,255,cv.THRESH_BINARY|cv.THRESH_OTSU)[1] image_contours= cv.findContours(image_thres.copy(),cv.RETR_EXTERNAL,cv.CHAIN_APPROX_SIMPLE)[1] locs = [] for(n,con) in enumerate(image_contours): (gx,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值