如何识别图片上的数字

xzjcL 2014-06-28 10:16:44

如上图,如何识别图片上的数字
...全文
2196 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
sn_pyc 2016-02-26
  • 打赏
  • 举报
回复
可以的,我就做过一个,想要的联系我qq:287267922
KK3K2005 2014-06-30
  • 打赏
  • 举报
回复
引用 3 楼 jslang 的回复:
图片应该不存在跨域问题,除非对方有防盗链 可以先用<img>加载图片,然后再放入canvas中
有跨域问题
quadrapop 2014-06-30
  • 打赏
  • 举报
回复
这种是最简单的识别,一旦加了混淆难度就变大了,有可能连人眼都要区分半天
一知 2014-06-30
  • 打赏
  • 举报
回复
感觉很高深,只能默默地顶一下
天际的海浪 2014-06-30
  • 打赏
  • 举报
回复
引用 10 楼 KK3K2005 的回复:
[quote=引用 9 楼 jslang 的回复:] [quote=引用 7 楼 KK3K2005 的回复:] [quote=引用 3 楼 jslang 的回复:] 图片应该不存在跨域问题,除非对方有防盗链 可以先用<img>加载图片,然后再放入canvas中
有跨域问题 [/quote] 这要产也有跨域问题?

<canvas id="canvasId" width="400" height="300"></canvas>
<img src="https://img-bbs.csdn.net/upload/201406/28/1403921760_116598.jpg" id="img" />
<script type="text/javascript">
var canvas = document.getElementById("canvasId");
var cxt = canvas.getContext("2d");
var img = document.getElementById("img");
img.onload = function ()
{
	cxt.drawImage(img,0,0);
}
</script>

[/quote] var imageData = cxt.getImageData(0, 0, 10, 10); console.log(imageData); 你在load里面试试看 跨域的图片可以显示 但是不能操作像素[/quote] 知道了,原来限制在这里
KK3K2005 2014-06-30
  • 打赏
  • 举报
回复
引用 9 楼 jslang 的回复:
[quote=引用 7 楼 KK3K2005 的回复:] [quote=引用 3 楼 jslang 的回复:] 图片应该不存在跨域问题,除非对方有防盗链 可以先用<img>加载图片,然后再放入canvas中
有跨域问题 [/quote] 这要产也有跨域问题?

<canvas id="canvasId" width="400" height="300"></canvas>
<img src="https://img-bbs.csdn.net/upload/201406/28/1403921760_116598.jpg" id="img" />
<script type="text/javascript">
var canvas = document.getElementById("canvasId");
var cxt = canvas.getContext("2d");
var img = document.getElementById("img");
img.onload = function ()
{
	cxt.drawImage(img,0,0);
}
</script>

[/quote] var imageData = cxt.getImageData(0, 0, 10, 10); console.log(imageData); 你在load里面试试看 跨域的图片可以显示 但是不能操作像素
天际的海浪 2014-06-30
  • 打赏
  • 举报
回复
引用 7 楼 KK3K2005 的回复:
[quote=引用 3 楼 jslang 的回复:] 图片应该不存在跨域问题,除非对方有防盗链 可以先用<img>加载图片,然后再放入canvas中
有跨域问题 [/quote] 这要产也有跨域问题?

<canvas id="canvasId" width="400" height="300"></canvas>
<img src="https://img-bbs.csdn.net/upload/201406/28/1403921760_116598.jpg" id="img" />
<script type="text/javascript">
var canvas = document.getElementById("canvasId");
var cxt = canvas.getContext("2d");
var img = document.getElementById("img");
img.onload = function ()
{
	cxt.drawImage(img,0,0);
}
</script>

天际的海浪 2014-06-30
  • 打赏
  • 举报
回复
引用 6 楼 quadrapop 的回复:
这种是最简单的识别,一旦加了混淆难度就变大了,有可能连人眼都要区分半天
那是当然的。如果那么容易破解,验证码还有什么用?
验证码识别 2014-06-28
  • 打赏
  • 举报
回复
无限之 切割再匹配, 切割再匹配, 直到找到最优的组合 或则设计一个好的切割算法, 切割后匹配(一般的ocr就能实现)
xuzuning 2014-06-28
  • 打赏
  • 举报
回复
是吗?我没有研究过,现炒现卖的 看了网上很多文章,都说是有跨域的问题
引用 3 楼 jslang 的回复:
图片应该不存在跨域问题,除非对方有防盗链 可以先用<img>加载图片,然后再放入canvas中
天际的海浪 2014-06-28
  • 打赏
  • 举报
回复
引用 2 楼 xuzuning 的回复:
先做个测试
<!DOCTYPE HTML>
<html>
<head>
 <!--[if lt IE 9]><script language="javascript" type="text/javascript" src="/jqplot/excanvas.min.js"></script><![endif]-->
<script src=/scripts/jquery-1.8.3.min.js></script>
</head>
<body>

<canvas id="myCanvas" width="200" height="100" style="border:1px solid #c3c3c3;">
Your browser does not support the canvas element.
</canvas>
<div id=view></div>

<script type="text/javascript">
$(function() {

var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
var img=new Image()
//img.src="https://img-bbs.csdn.net/upload/201406/28/1403921760_116598.jpg"
img.src = '/photo.jpg'; //因涉及跨域,所以用了本地文件
ctx.drawImage(img,0,0);

x = 0;
y = 9;
h = 15;
w = 12;
p = ctx.getImageData( x, y, w, h)
ctx.putImageData(p, x, y+20)

$('#view').append(p.width + '<br>');
$('#view').append(p.height + '<br>');

for(y=0; y<p.height; y++) {
  for(x=0; x<p.width; x++) {
    i = (y*w+x)*4;
    n = (p.data[i] + p.data[i+1] + p.data[i+2]) / 3;
    $('#view').append((n>127 ? ' ' : 1)+'');
  }
  $('#view').append('<br>');

}
});
</script>

</body>
</html>
再配上模式匹配代码,认出数字还是很容易的 但因为由于有跨域问题,所以实际意义并不大
图片应该不存在跨域问题,除非对方有防盗链 可以先用<img>加载图片,然后再放入canvas中
xuzuning 2014-06-28
  • 打赏
  • 举报
回复
先做个测试
<!DOCTYPE HTML>
<html>
<head>
<!--[if lt IE 9]><script language="javascript" type="text/javascript" src="/jqplot/excanvas.min.js"></script><![endif]-->
<script src=/scripts/jquery-1.8.3.min.js></script>
</head>
<body>

<canvas id="myCanvas" width="200" height="100" style="border:1px solid #c3c3c3;">
Your browser does not support the canvas element.
</canvas>
<div id=view></div>

<script type="text/javascript">
$(function() {

var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
var img=new Image()
//img.src="https://img-bbs.csdn.net/upload/201406/28/1403921760_116598.jpg"
img.src = '/photo.jpg'; //因涉及跨域,所以用了本地文件
ctx.drawImage(img,0,0);

x = 0;
y = 9;
h = 15;
w = 12;
p = ctx.getImageData( x, y, w, h)
ctx.putImageData(p, x, y+20)

$('#view').append(p.width + '<br>');
$('#view').append(p.height + '<br>');

for(y=0; y<p.height; y++) {
for(x=0; x<p.width; x++) {
i = (y*w+x)*4;
n = (p.data[i] + p.data[i+1] + p.data[i+2]) / 3;
$('#view').append((n>127 ? ' ' : 1)+'');
}
$('#view').append('<br>');

}
});
</script>

</body>
</html>

再配上模式匹配代码,认出数字还是很容易的
但因为由于有跨域问题,所以实际意义并不大

天际的海浪 2014-06-28
  • 打赏
  • 举报
回复
js 没这功能。 这是OCR范畴

87,997

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧