我试图将图像相互比较,以确定它们是否不同.首先,我尝试对RGB值进行Pearson相关,除非图像是轻微的位移,否则它的效果也相当不错.因此,如果一个100%相同的图像,但一个有点移动,我得到一个不好的相关值.
有关更好算法的任何建议吗?
顺便说一下,我正在谈论比较数千个图片......
编辑:以下是我的照片示例(微观):
IM1:

IM2:

IM3:

im1和im2是相同但有点移位/切割,im3应该被认为是完全不同的...
编辑: 问题是通过Peter Hansen的建议解决的!效果很好!感谢所有答案!一些结果可以在这里找到 http://labtools.ipk-gatersleben.de/image%20comparison/image%20comparision.pdf
是否可以仅使用matplotlib绘制表格?如果我取消注释该行
plt.bar(index, data[row], bar_width, bottom=y_offset, color=colors[row])
Run Code Online (Sandbox Code Playgroud)
在此示例代码中,该图仍然可见.我希望在我的(PyQt)窗口顶部和一个绘图下面有一个表(中间有一些空格).
我想检测显微镜图像细胞内的物体.我有很多带注释的图像(带有对象的应用程序50.000个图像和没有对象的500.000个图像).
到目前为止,我尝试使用HOG提取特征并使用逻辑回归和LinearSVC进行分类.我已经为HOG或颜色空间(RGB,HSV,LAB)尝试了几个参数,但我没有看到很大的差异,预测率约为70%.
我有几个问题.我应该使用多少图像来训练描述符?我应该使用多少图像来测试预测?
我已经尝试了大约1000张图像用于训练,这给了我55%的正面和5000,这给了我大约72%的正面.但是,它也很大程度上取决于测试集,有时测试集可以达到80-90%的正检测图像.
以下是包含对象和两个没有对象的图像的两个示例:




另一个问题是,有时图像包含几个对象:

我应该尝试增加学习集的示例吗?我该如何选择训练集的图像,只是随机的?我还能尝试什么?
任何帮助都将非常感激,我刚开始发现机器学习.我正在使用Python(scikit-image和scikit-learn).
我使用wxPython大约2年,我分发给很多同事的几个小型科学课程.我喜欢wxPython并且我已经非常熟悉了它但是很少有东西让我发疯(不是因为wxPython,实际上我想继续使用它):
1)我在不同的操作系统上有很多用户.我知道wxPython是跨平台的,但我已经没有时间和时间将每个小软件(以及更多的软件)移植到不同的操作系统.特别是我没有使用它们中的一些(Windows7,Mac),所以我很难解决问题和用户请求.
2)我们更新了我们的软件(因为新的想法总是来自用户和我们自己),这意味着我可以再次生成所有独立站,上传它们并让用户再次卸载和安装.讨厌...
我当时已经在考虑切换到Web框架但是存在一些问题.首先,许多用户喜欢使用我的软件离线,例如他们旅行或没有互联网.其次,我们在某些数据库中有一些数据,这些数据永远不应该放在服务器上.这一切都与专利有关,并且将始终是一个讨论,所以我更喜欢让我的一些程序成为一个独立的桌面应用程序来简化事情.其他人可以上网,没问题.
所以,总的来说,我会喜欢基于浏览器的解决方案,因为每个人都有一个浏览器.我看到有些人将Django项目作为一个独立的桌面应用程序移植,我发现这不是一个坏主意.关于Camelot,我也很红,但我认为这对数据库来说很重要.Camelot仅对我的一些工具有用,而这些工具相当于数据库搜索和提取程序.但其他人根本不使用数据库.
任何人都可以建议我,什么是我的工具的一个很好的解决方案?
我正在尝试重现本教程。但是我在调用时收到错误cv2.convexHull(cnt,returnPoints = False)
OpenCV 错误:在 cv::convexHull,文件 C:\builds\master_PackSlaveAddon-win32-vc12-static\opencv\modules\imgproc\ 中,断言失败(total >= 0 && (depth == CV_32F || depth == CV_32S)) src\convhull.cpp,第 134 行 Traceback(最近一次调用最后一次):文件“Z:/Image processing/HypheArea/test.py”,第 10 行,在 hull = cv2.convexHull(cnt,returnPoints = False) cv2.error : C:\builds\master_PackSlaveAddon-win32-vc12-static\opencv\modules\imgproc\src\convhull.cpp:134: 错误: (-215) total >= 0 && (depth == CV_32F || depth == CV_32S ) 在函数 cv::convexHull 中
示例代码:
import cv2
import numpy as np
img = cv2.imread('star.jpg')
img_gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
ret, thresh = cv2.threshold(img_gray, 127, 255,0)
contours = cv2.findContours(thresh,2,1)
cnt = contours[0]
hull = …Run Code Online (Sandbox Code Playgroud) 我实现了一个图像浏览器,我使用鼠标的滚轮事件来显示下一个图像.问题是,如果用户滚动到快速,滚轮的位置值会跳过并吞下两者之间的值.有谁知道我怎么能克服这个问题?这是一个示例代码.如果我慢慢滚动,我会得到一个递减值-1,-2,-3; 如果我快速滚动,我得到-1,-5,-6,-11之类的东西.WindowsXP&7上出现问题.
from PyQt4.QtCore import *
from PyQt4.QtGui import *
import sys
#############Define MyWindow Class Here ############
class MyWindow(QMainWindow):
##-----------------------------------------
def __init__(self):
QMainWindow.__init__(self)
self.label = QLabel("No data")
self.label.setGeometry(100, 200, 100, 100)
self.setCentralWidget(self.label)
self.setWindowTitle("QMainWindow WheelEvent")
self.x = 0
##-----------------------------------------
def wheelEvent(self,event):
self.x =self.x + event.delta()/120
print self.x
self.label.setText("Total Steps: "+QString.number(self.x))
##-----------------------------------------
##########End of Class Definition ##################
def main():
app = QApplication(sys.argv)
window = MyWindow()
window.show()
return app.exec_()
if __name__ == '__main__':
main()
Run Code Online (Sandbox Code Playgroud) 我在理解 Python/PyQt 的类继承时遇到了麻烦。我有一个MainWindow和一个 Popup QWidget。我想用互动self.label1的MainWindow后QWidget在弹出窗口中打开,但我不知道该怎么做。我只知道MainWindow反过来,从里面的弹出窗口访问所有小部件,反之亦然。
下面是一个例子,self.label1中MainWindow后应该得到另一个文本MyPopup在新窗口中打开:
import sys
from PyQt4.Qt import *
class MyPopup(QWidget):
def __init__(self):
QWidget.__init__(self)
# I want to change the lable1 of MainWindow
self.cw.label1.setText('hello')
class MainWindow(QMainWindow):
def __init__(self, *args):
QMainWindow.__init__(self, *args)
self.cw = QWidget(self)
self.setCentralWidget(self.cw)
self.btn1 = QPushButton("Click me", self.cw)
self.btn1.setGeometry(QRect(50, 50, 100, 30))
self.label1 = QLabel("No Commands running", self.cw)
self.connect(self.btn1, SIGNAL("clicked()"), self.doit)
self.w = None
def doit(self):
self.w = …Run Code Online (Sandbox Code Playgroud) 任何人都能解释一下(简化)如果我用FFT进行图像比较会发生什么?我不知道如何将图片转换成频率以及如何用它来区分两个图像.通过谷歌我找不到一个简单的描述,我(非数学/信息)可以理解.
任何帮助都会非常有用!谢谢!
我想知道我可以用一组数字建立一个数字的次数:
possible_numbers = 1, 2, 4, 8, 16
Run Code Online (Sandbox Code Playgroud)
如果我想要23号我需要
1x 16
0x 8
1x 4
1x 2
1x 1
Run Code Online (Sandbox Code Playgroud)
Python中是否有内置函数来执行此操作?
编辑:数字固定为1,2,4,8,16,32,64,128.可以进行多种选择.
由于没有功能构建,我会自己编写代码.
python ×9
image ×3
pyqt ×3
opencv ×2
windows ×2
class ×1
compare ×1
contour ×1
django ×1
events ×1
fft ×1
geometry ×1
inheritance ×1
matplotlib ×1
mousewheel ×1
numbers ×1
scikit-image ×1
scikit-learn ×1
theory ×1