
1 kslr May 29, 2015 还记得字模识别的验证码的么?行不行 |
2 yahoo21cn May 29, 2015 转成bmp,像素求差集行吗 |
3 chengzhoukun May 29, 2015 via Android 图片说到底是矩阵,转化成矩阵然后对比不同矩阵元素是不是好点 |
4 lzachilles May 29, 2015 为什么OPENCV不行?imread进来就是Mat矩阵,每个元素就是一个像素。直接两个Mat相减就OK了 |
5 Septembers May 29, 2015 see /t/185474 |
6 theFool May 29, 2015 为什么我在网页(chrome)上看的感觉下面的图比较亮,下到本地看是一样的? |
7 doomgiant OP 多谢各位指点,我从矩阵这块在研究看看。再次感谢 |
10 Sylv May 29, 2015 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 May 29, 2015 |
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 May 29, 2015 读入到矩阵,然后矩阵相减。 |
17 dobest May 30, 2015 直接遍历最简单,上面已经有人说了。另外,可以用opencv的absdiff函数,直接得到差值图像,这样可以看到两幅图像的差异。计算差异像素个数,可以将差值图像转成灰度后,用countNonZero计算非零像素个数。 |
20 a href="/member/Harry" class="dark">Harry Jul 9, 2017 @Sylv 没问题,多谢回复。 |