我试图找到与大量其他图像(+10.000)最接近的图像匹配。背景颜色全白色,相同的拍摄角度,图像内容形状彼此接近(见下图)。我尝试使用opencvandORB和BFMatcherwithknnMatch来找到最接近的匹配。但我还没有找到我想要的比赛。
据我理解,图像需要是灰度的,但就我而言,我认为颜色是一个非常重要的描述符?
我对 opencv 和图像匹配都很陌生,所以如果我需要使用其他方法,你能帮助我吗?
import cv2
import os
orb = cv2.ORB_create(nfeatures=1000) # Find 1000 features to match from
bf = cv2.BFMatcher()
# Image to match
findImg = 'captainA.png'
imgCur = cv2.imread(f'{"Images"}/{findImg}', 0)
kp1,des1 = orb.detectAndCompute(imgCur,None)
# Loop through all superheroe images and find closest match
images = ["img1.png","img2.png","img3.png","img4.png","img5.png","img6.png","img7.png","img8.png","img9.png","img10.png","img11.png","img12.png"]
matchList = []
names = []
for img in images:
imgCur = cv2.imread(f'{Superheroes}/{img}', 0)
kp2,des2 = orb.detectAndCompute(imgCur,None)
matches = bf.knnMatch(des1,des2,k=2)
goodMatches = [] …Run Code Online (Sandbox Code Playgroud) python opencv classification computer-vision object-recognition
我花了几天时间来搜索关于这个话题,我发现了一些好文章,但他们讲理论讨论,我也使用MATLAB来实现它.从Caltec 101数据集中选择指定的对象.我知道达到这个目标有很多方法,使用对象几何特征,模板匹配和其他方法.是否有任何教程在MATLAB中实现这些方法之一?
*我可以选择另一个数据集,它不会被迫使用Caltec 101
Caltec 101:
另一个数据集

matlab pattern-recognition image-processing computer-vision object-recognition

上图来自Yann LeCun的pdf文件,标题为“感知和推理的层次模型”
我无法理解第2层是14X14要素地图的方式?带有10X10池化和5X5子采样的75X75矩阵如何提供14X14矩阵?
pooling object-recognition neural-network subsampling deep-learning
我认为这个问题之前有人问过,但我没有找到解决我的问题的样本或解决方案。我是 opencv 的新手,我想使用 OpenCV CameraPreview 进行纸张检测。在我的示例应用程序中,我使用带有静态初始化的 opencv 3.0.0。我了解对象识别可以通过以下步骤完成:
我的问题是现在我可以精明和模糊图像,但我不知道如何找到轮廓和矩形并用半透明颜色填充它们。
这是我当前的 onCameraFrame 函数:
@Override
public Mat onCameraFrame(CameraBridgeViewBase.CvCameraViewFrame inputFrame) {
Mat input = inputFrame.rgba();
Mat output = input.clone();
Imgproc.Canny(input, output, 50, 50);
Imgproc.blur(output, output,new Size(5,5));
//Find Contours
//Search for biggest Contour/Rectangle
//Fill Rectangle with half transparent Color
return output;
}
Run Code Online (Sandbox Code Playgroud)
谁能帮我解决纸张检测的问题并有一个android/java的代码示例?谢谢