質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

1回答

3227閲覧

PCL エラーC4996 'pcl::SAC_SAMPLE_SIZE' を解決したい

mypace

総合スコア45

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2019/01/16 12:54

C++, OpenCVを使用し、視差画像からデプス画像を作成しました。
PCL(Point Cloud Library) ver 1.8.1 を使用し、
点群にしたデプス2つをレジストレーションしたいです。
PCLのドキュメントを参考にICP(Iterative Clossest Point)を使用するため、
pcl/registration/icp.h をインクルードしたところ以下のC4996エラー
'pcl::SAC_SAMPLE_SIZE'が発生します。

このエラーの解決方法をご教授いただきたく思います。

---エラー文---
c:\program files\pcl 1.8.1\include\pcl-1.8\pcl\sample_consensus\model_types.h(99): error C4996: 'pcl::SAC_SAMPLE_SIZE':
This map is deprecated and is kept only to prevent breaking existing user code.
Starting from PCL 1.8.0 model sample size is a protected member of the SampleConsensusModel class

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

OpenCVもPCLも判りませんが、ググったら公式(??)の掲示板に

http://www.pcl-users.org/Deprecated-Error-C4996-pcl-SAC-SAMPLE-SIZE-in-PCL1-8-td4041337.html

model_types.hで該当するコードをコメントアウトして対処して問題なく動作したとあります(^_^;

cpp

1namespace pcl 2{ 3 const static std::map<pcl::SacModel, unsigned int> 4 // PCL_DEPRECATED("This map is deprecated and is kept only to prevent breaking " 5 // "existing user code. Starting from PCL 1.8.0 model sample size " 6 // "is a protected member of the SampleConsensusModel class") 7 SAC_SAMPLE_SIZE (sample_size_pairs, sample_size_pairs + sizeof (sample_size_pairs) / sizeof (SampleSizeModel)); 8}

#ちゃんとした回答は他の方に期待


追記:

最新(1.9系?)のソースを見たところ、すでにそのようなコードは削除されていました。
https://github.com/PointCloudLibrary/pcl/blob/master/sample_consensus/include/pcl/sample_consensus/model_types.h

最新のものを使ってみてはいかがでしょうか。

投稿2019/01/17 08:36

編集2019/01/17 08:45
takabosoft

総合スコア8356

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mypace

2019/01/18 05:04

最新verでは削除されているんですね。最新verの使用も検討したいと思います。 掲示板の最後にVisualStudioの設定でも出来るとあったので、そちらの方法を試してみたところ、 c:\program files\pcl 1.8.1\3rdparty\boost\include\boost-1_64\boost\typeof\msvc\typeof_impl.hpp(125) : error C2988: 認識できないテンプレートの宣言または定義です。 となりました。 調べたのですが対処法がわからず、よろしければこちらのエラーの解決法についてもご教授いただけないでしょうか?
takabosoft

2019/01/18 05:54

boostは使ったことがないですが、たぶん古いVisual Studioを使っていると、新しい記述方法のテンプレートでエラーになるんじゃないでしょうかね。
mypace

2019/01/22 05:24

ありがとうございました。 C2988についてはもっと調べてみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問