[pcl::2d] Keypoint module implementation is broken and incompatible with updated Convolution/Edge/Kernel classes
I maintainer di solito rispondono entro 4 giorni
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 35/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- cpp
- Ambito
- computer-vision
Direzione di ricerca
Inizia leggendo pcl/2d/impl/keypoint.hpp insieme alle API Convolution ed Edge in pcl/2d, quindi compila l’esempio minimo std::vector<std::vector> dell’issue. Traccia l’ImageType previsto e l’ambito dell’aggiornamento, comprese le chiamate mancanti a Gaussian/convolution e l’implementazione della derivata; il lavoro è completato quando l’esempio Keypoint viene compilato con le API correnti senza gli errori di tipo o di metodo segnalati.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Description
I encountered severe compilation errors and design inconsistencies when trying to use the pcl::2d::Keypoint module. It appears that the implementation of Keypoint in pcl/2d/impl/keypoint.hpp has not been updated to match the current API of its dependencies (pcl::2d::Convolution, pcl::2d::Edge, and pcl::2d::Kernel).
The code seems to rely on legacy methods that no longer exist or have been renamed, and there is a fundamental type incompatibility between Keypoint and Convolution.
Steps to Reproduce
-
Include
pcl/2d/keypoint.h -
Try to instantiate
pcl::Keypointwith a standard PointCloud type or a vector type.#include <pcl/2d/keypoint.h> #include <pcl/point_cloud.h> #include <pcl/point_types.h> int main() { // Define the ImageType that meets the requirements of the source code (no longer PointCloud) using ImageType = std::vector<std::vector<float>>; int width = 20; int height = 20; ImageType input(height, std::vector<float>(width, 0.0f)); ImageType output; for (int r = 5; r <= 15; ++r) { for (int c = 5; c <= 15; ++c) { input[r][c] = 255.0f; } } pcl::Keypoint<ImageType> keypoint; // Args: output, input, sigma_d, sigma_i, alpha, thresh keypoint.harrisCorner (output, input, 1.0f, 2.0f, 0.04f, 1e-5f); // compile error return 0; }
Detailed Errors
I have identified the following critical issues in pcl/2d/impl/keypoint.hpp:
1. Missing Methods in Convolution
The Keypoint implementation calls methods on the conv_2d object (type pcl::Convolution) that do not exist:
- Called:
conv_2d.gaussianKernel(5, sigma, kernel_y);- Reality:
pcl::Convolutionhas nogaussianKernelmethod. This method seems to belong to thepcl::kernelclass.
- Reality:
- Called:
conv_2d.convolve(output, input, kernel_y);- Reality:
pcl::Convolutionuses the standard PCL Filter interface. The method is likelyfilter(), or the class usage is completely wrong here.
- Reality:
2. Missing Methods in Edge
The code calls edge_detection.ComputeDerivativeXCentral(...). However, this method only has a declaration and has not been implemented.
3. Fundamental Type Incompatibility
The pcl::Keypoint class seems to be written assuming ImageType is a std::vector<std::vector<T>> (nested vector), as seen by the access pattern input[i][j] in keypoint.hpp.
However, pcl::Convolution and pcl::Edge explicitly require pcl::PointCloud<PointT> as their template argument and input types.
- If I pass
pcl::PointCloudtoKeypoint:keypoint.hppfails because PointCloud does not support[i][j]indexing (it uses(col, row)or flat indexing). - If I pass
std::vector<std::vector<T>>toKeypoint:convolution.hfails because it expects a class with.width,.heightandpointsmembers.
Environment
- OS: 6.18.5-arch1-1
- Compiler: gcc 15.2.1
- PCL: Master branch
- Lingua principale
- C++
- Stelle
- 11.2k
- Fork
- 4.7k
- Merge medio
- 5g 8h
- PR unite (30g)
- 10
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di PointCloudLibrary/pcl
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 67/100
PointCloudLibrary/pcl#6509 · 1 commento ·
I maintainer di solito rispondono entro 4 giorni
-
[sample_consensus] Migrated the SSE and AVX implementations of countWithinDistance to RISC-V RVV 1.0Apertakind: request status: triage
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
PointCloudLibrary/pcl#6385 · 1 reazione ·
I maintainer di solito rispondono entro 4 giorni
-
2 tests failForse già presa Una pull request collegata a questa issue è aperta o già unita. Aperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 25/100
PointCloudLibrary/pcl#6373 · 1 commento · 1 reazione ·
I maintainer di solito rispondono entro 4 giorni
-
kind: question kind: request
Difficoltà 4/5 3-5 giorni Idoneità per principianti 28/100
PointCloudLibrary/pcl#6370 · 2 commenti ·
I maintainer di solito rispondono entro 4 giorni
-
kind: question
Difficoltà 4/5 3-5 giorni Idoneità per principianti 30/100
PointCloudLibrary/pcl#6366 · 11 commenti ·
I maintainer di solito rispondono entro 4 giorni
Tutte le issue di PointCloudLibrary/pcl
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
scp-fs2open/fs2open.github.com#7953 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
HansKristian-Work/dxil-spirv#341 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 6 giorni