PHP 使用百度OCR获取图片中文本信息

1、登录百度账号,找到百度ocr的文字识别,访问地址https://console.bce.baidu.com/ai/?_=1523326288844#/ai/ocr/overview/index

2、创建应用,创建之后 记住应用的API Key 和 Secret Key

3、获取token

	$url = 'https://aip.baidubce.com/oauth/2.0/token';
	$post_data['grant_type']       = 'client_credentials';
	$post_data['client_id']      = '你的 Api Key';
	$post_data['client_secret'] = '你的 Secret Key';
	$o = "";
	foreach ( $post_data as $k => $v ) 
	{
		$o.= "$k=" . urlencode( $v ). "&" ;
	}
	$post_data = substr($o,0,-1);
	$res = request_post($url, $post_data);
	
	$resjson = json_decode($res,true);
	$token = $resjson["access_token"];
	
	function request_post($url = '', $param = '') {
	        if (empty($url) || empty($param)) {
	            return false;
	        }
	        $postUrl = $url;
	        $curlPost = $param;
	        $curl = curl_init();//初始化curl
	        curl_setopt($curl, CURLOPT_URL,$postUrl);//抓取指定网页
	        curl_setopt($curl, CURLOPT_HEADER, 0);//设置header
	        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且输出到屏幕上
	        curl_setopt($curl, CURLOPT_POST, 1);//post提交方式
	        curl_setopt($curl, CURLOPT_POSTFIELDS, $curlPost);
	        $data = curl_exec($curl);//运行curl
	        curl_close($curl);
	        
	        return $data;
	    }

4、识别图片文本,获取信息

	$ocrurl = "https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic";
	$basicGeneralUrl = $this->basicGeneralUrl($ocrurl,'123.jpg',$token);
	$ocrimg_json     = json_decode($basicGeneralUrl,true);
	
	public function basicGeneralUrl($ocrurl,$image,$token) {
		if (empty($image) || empty($ocrurl) || empty($token)) {
	        return false;
	    }
		
		$image_data = fread(fopen($image, 'r'), filesize($image)+1);
		$base64_image = base64_encode(($image_data));//需要编译
		$date = array('image'=>$base64_image,'access_token'=>$token);
		$curl = curl_init();//初始化curl
		curl_setopt($curl, CURLOPT_URL,$ocrurl);//抓取指定网页
		curl_setopt($curl, CURLOPT_HEADER, 0);//设置header
		curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且输出到屏幕上
		curl_setopt($curl, CURLOPT_POST, 1);//post提交方式
		curl_setopt($curl, CURLOPT_POSTFIELDS, $date);
		$data = curl_exec($curl);//运行curl
		curl_close($curl);
		return $data;
	}
posted @ 2018-11-07 15:46  莫名______Q  阅读(660)  评论(0)    收藏  举报