小编Som*_*lse的帖子

如何计算2个numpy数组的"EMD",即使用opencv的"histogram"?

由于我是opencv的新手,我不知道如何将这个cv.CalcEMD2函数用于numpy数组.
我有两个数组:

a=[1,2,3,4,5]  
b=[1,2,3,4]
Run Code Online (Sandbox Code Playgroud)

我怎么能转移numpy arrayCVhistogramCvhistogram该函数的参数signature

我希望任何回答问题的人opencv通过提供的解决方案解释任何使用过的功能.

"EMD"== 地球移动者的距离.

更新: -
此外,如果有人可以告诉我如何设置cv.CalcEMD2参数,即"signature"使用numpy数组!!

注意: -
*对于那些可能对此问题感兴趣的人,此答案需要更多测试.

python opencv numpy histogram earthdistance

13
推荐指数
1
解决办法
7338
查看次数

复制的ZODB数据库上出现错误消息"无法找到记录器ZODB.FileStorage的处理程序"

我使用创建了一个数据库ZODB,然后将其复制粘贴到另一台PC上.我想知道为什么每次我登录这个数据库(复制的数据库)我都会收到此错误:

no handlers could be found for logger (ZODB.FileStorage)
Run Code Online (Sandbox Code Playgroud)

注意:程序不会中断,它只是打印出红色的语句,就好像它是一个错误.

这个恼人的消息是什么?为什么每次登录都会发生?

更新号(1):什么是python日志系统?为什么我需要在我的应用程序中配置它?

注意:

  1. 我只使用ZODB.

  2. 我的操作系统是Windows XP SP2.

python logging

12
推荐指数
1
解决办法
2万
查看次数

如何使用 python 在图像上获得“智能锐化”效果?

我想知道如何使用或任何相关的图像库(例如,甚至是)智能锐化图像。我可以找到实际锐化图像的方法,但在放大时会产生大量噪音和像素化。所以,自从我知道我试图得到它智能锐化效果,通过 python 锐化图像,噪音更少,对比度更佳,但我失败了。 pythonndimageskimagePILPhotoshop

注:-
(1) 方法已经过测试:-

>>> # The 1st Method:  
>>> import Image                 
>>> import ImageFilter
>>> image.filter(ImageFilter.SHARPEN)               
>>> Image.filter(ImageFilter.EDGE_ENHANCE_MORE)    #Look down:1st image created  

>>> # The 2nd Method:
>>> blurred_l=scipy.ndimage.gaussian_filter(b,3)  
>>> filter_blurred_l = scipy.ndimage.gaussian_filter(blurred_l, 1)  
>>> alpha =30  
>>> sharpened = blurred_l + alpha * (blurred_l - filter_blurred_l)  

>>> # The 3rd Method:  
>>> shar=imfilter(Image,'sharpen')               #Look down:2nd image created
Run Code Online (Sandbox Code Playgroud)

(2) 我找到了一段代码,但它在Perl. 我只知道Python 在这里直接 (3)这里有 2 个使用上述方法锐化的图像,第三个是用 …

python image-processing scipy scikit-image

5
推荐指数
1
解决办法
7595
查看次数

在这种情况下进行直方图比较是否安全?

由于我不知道直方图比较的限制,我决定问这个精彩的社区.
我有一些图像,我想根据它的相似性对它们进行分组.每个图像都有一个独特的彩色线条,从图像的顶部到底部开始,所以我所做的是通过这些彩色线条进行垂直投影并制作一个这个投影的每个图像的直方图.它很好,因为两个相似的图像应该有两个相似的直方图(即上下几乎完全相同的圆)与人类我可以决定两个直方图根据该独特的功能相似甚至如果一个直方图没有高峰值(即,这是一个微弱图像的直方图)

图像及其相应的直方图:
.................... 1st http://imageshack.us/a/img571/948/onelg.jpg ..... ............................................. 第二http:// imageshack.us/a/img255/642/twor.jpg ..................................... ... 第3页http://imageshack.us/a/img577/3931/threeaw.jpg ................ 1sth http://imageshack.us/a/img823/ 4343/onehq.png 2ndh http://imageshack.us/a/img687/3738/twoht.png 3rdh http://imageshack.us/a/img43/9996/threeh.png
......... .................................................. .............. 2nddarker http://imageshack.us/a/img690/7817/twodark.jpg
.................. ...............................2nddarkhist http://img20.imageshack.us/img20/6070/darkerh.png

我将这两个图像转换为灰度图像,然后我对图像进行了垂直投影,将其转换为直方图.您可能会注意到前两个直方图是相似的,但第三个直方图有点不同,因为它有一个切换的彩色线条.

注意: -
(1)考虑前两个直方图.尽管最高的喙接近12,但并非总是如此,一些图像更暗或更暗但最终它确实给出了相同的直方图形态,如果我能说你可以注意到最后一个直方图是第二个直方图的较暗图像.

我的问题是:进行任何类型的直方图比较是否安全?直方图比较是否意味着我可以决定两个直方图是否具有相同的峰值?或者在其他词中,直方图比较告诉我两个直方图是否具有相同的形态?在这种比较中进行这种比较的最佳库或方法是什么python

更新: -
(1)作为回复@PepperoniPizza和@FedericoCristina,在我的情况下,完全不同的图像肯定会有不同的直方图(你可以依靠它)每个图像都有一个独特的直方图形态(即独特的峰值)和峰值的数量从一个图像到另一个图像不同,但是两个相似的图像应该具有相同数量的峰值(换句话说>如果你看它们的直方图,你可以看出它们看起来有点相同(查看第1个,第2个和最后一个直方图)我的意思.
(2)为了清楚这一点,我真的不想要一个如何分组我的图像的解决方案,但我付出了很多意图,我可以决定如何确定两个直方图具有相似的形状或形态一般情况!!!!
(3)我知道cv2.CompareHist()但我不知道它是否是一种比较我的直方图的正确方法,因为我不知道它是如何cv2.CompareHist()工作的(即我不知道它们做什么基础比较)并且实际上cv2.CompareHist()有4种类型的直方图比较我不喜欢知道什么是最好的甚至是什么是进行这种比较的替代方法.
(4)作为回复@revi,这里有一点: - 我已经有3个库,它们支持直方图比较,至少对我来说有点模糊 - 要知道它们的直方图比较是什么意思h1-h2然后calcuate(MSE)它所做的只是比较值而不是这些值在直方图中形成的形状.因为我不太擅长直方图和他们的数学工作,我想知道我是否真的可以比较直方图这样的方式.

谢谢

python opencv image-processing histogram computer-vision

5
推荐指数
1
解决办法
1395
查看次数

为什么ndimage.label(image)会在所考虑的内容中标出额外的形状?

当我使用ndimage.label(img)scipy包中导入来标记灰度PNG图像时,它的行为如下.
我有两个图像,其中包含一些形状Photoshop:
第一个图像:
test_one http://imageshack.us/a/img140/8669/onehx.png
我在上面的图像上执行此代码.

>>> from scipy.misc import imread
>>> from scipy.ndimage import (label,find_objects)

>>> img=imread('first.jpg')
>>> x,y = label(img)
>>> print y                 # Prints exactly "4" shapes ,which is right.
4

>>> f=find_objects(x)
>>> print f                 # Returns exactly the "4" slices of the considered shapes.
[(slice(16L, 61L, None), slice(149L, 189L, None)),  
(slice(30L, 40L, None), slice(60L, 90L, None)),  
(slice(50L, 70L, None), slice(20L, 120L, None)),  
(slice(96L, 149L, None), slice(130L, 186L, None))]
Run Code Online (Sandbox Code Playgroud)

直到现在,它运作良好. …

python numpy scipy

3
推荐指数
1
解决办法
5037
查看次数

如何在图像上应用去卷积方法?

这是一个扩展的问题,这个疑问句 .Thanks到Kindall斯蒂芬·范德Wallt,原来为了解决前面的问题,我需要了解如何应用deconvolution使用的图像处理python任何相关的软件包.
因为我只知道python,您可能想告诉我如何使用python 转换MatLab此链接MatLap代码中的代码,我只对"卷积定理 - 练习部分"感兴趣,这将是一个很大的帮助.
我还需要了解卷积或解卷积方法对图像的作用.我用谷歌搜索试图找出它,但有很多方程式我无法完全理解.

注意:
(1)关于如何deconvolve工作的任何解释,当然将不胜感激.
谢谢

numpy image-processing scipy python-2.7 scikit-image

1
推荐指数
1
解决办法
3376
查看次数