1 kslr 2015-05-29 13:55:20 +08:00 ![]() 还记得字模识别的验证码的么?行不行 |
2 yahoo21cn 2015-05-29 13:57:02 +08:00 ![]() 转成bmp,像素求差集行吗 |
![]() | 3 chengzhoukun 2015-05-29 13:58:54 +08:00 via Android ![]() 图片说到底是矩阵,转化成矩阵然后对比不同矩阵元素是不是好点 |
4 lzachilles 2015-05-29 14:02:48 +08:00 ![]() 为什么OPENCV不行?imread进来就是Mat矩阵,每个元素就是一个像素。直接两个Mat相减就OK了 |
![]() | 5 Septembers 2015-05-29 14:07:57 +08:00 ![]() see /t/185474 |
![]() | 6 theFool nbsp;2015-05-29 14:13:10 +08:00 为什么我在网页(chrome)上看的感觉下面的图比较亮,下到本地看是一样的? |
![]() | 7 doomgiant OP 多谢各位指点,我从矩阵这块在研究看看。再次感谢 |
![]() | 10 Sylv 2015-05-29 15:07:30 +08:00 ![]() PIL 怎么会不可以呢,我试了下分分钟搞定: from PIL import Image im1, im2 = Image.open("1.jpg"), Image.open("2.jpg") width, height = im1.size diff = [(x, y) for x in xrange(width) for y in xrange(height) if im1.getpixel((x, y)) != im2.getpixel((x, y))] print len(diff) -> 532 |
![]() | 11 Sylv 2015-05-29 15:34:30 +08:00 ![]() |
![]() | 12 doomgiant OP @Sylv 非常感谢,新手上路 :) 尝试用opencv2 ### import numpy as np import cv2 global n n = 0 img1 = cv2.imread('testimg.jpg', 0) img2 = cv2.imread('testimg_diff.jpg', 0) height, width = img1.shape for line in range(height): for pixel in range(width): if img1[line][pixel] != img2[line][pixel]: n = n + 1 print n ### -> 299 奇怪得出的值和你的不太一样,继续研究研究 |
![]() | 13 doomgiant OP 重新排版 ### import numpy as np import cv2 global n n = 0 img1 = cv2.imread('testimg.jpg', 0) img2 = cv2.imread('testimg_diff.jpg', 0) height, width = img1.shape for line in range(height): for pixel in range(width): if img1[line][pixel] != img2[line][pixel]: n = n + 1 print n ### |
![]() | 14 doomgiant OP |
15 timi 2015-05-29 16:23:56 +08:00 读入到矩阵,然后矩阵相减。 |
![]() | 17 dobest 2015-05-30 08:23:21 +08:00 直接遍历最简单,上面已经有人说了。另外,可以用opencv的absdiff函数,直接得到差值图像,这样可以看到两幅图像的差异。计算差异像素个数,可以将差值图像转成灰度后,用countNonZero计算非零像素个数。 |