[解決済み] openCVで特定のピクセルのRGB値にアクセスする
2023-06-29 03:34:28
質問
インターネットやstackoverflowで検索してみましたが、答えが見つかりませんでした。
OpenCVで特定の(x,y座標で与えられる)ピクセルのRGB値を取得/設定(両方)するにはどうしたらよいでしょうか?重要なことは,私は C++ で書いていて,画像は cv::Mat 変数に保存されているということです.IplImage() 演算子があることは知っていますが,IplImage はあまり快適ではありません - 私の知る限り,それは C API から来たものです.
はい、私はすでにこれがあったことを認識しています ピクセルへのアクセスは、OpenCV 2.2 では スレッドがあったことは知っていますが、それは黒と白のビットマップについてのみでした。
EDITです。
ご回答ありがとうございました。ピクセルのRGB値を取得/設定する方法はたくさんあるのですね。私は親しい友人からもう1つのアイデアを得ました-Bennyに感謝します! これはとてもシンプルで効果的です。どれを選択するかは好みの問題だと思います。
Mat image;
(...)
Point3_<uchar>* p = image.ptr<Point3_<uchar> >(y,x);
で、RGB値の読み書きができる。
p->x //B
p->y //G
p->z //R
どのように解決するのですか?
以下を試してみてください。
cv::Mat image = ...do some stuff...;
image.at<cv::Vec3b>(y,x);
は、RGB(BGRと表記されることもあります)ベクトルで、型は
cv::Vec3b
image.at<cv::Vec3b>(y,x)[0] = newval[0];
image.at<cv::Vec3b>(y,x)[1] = newval[1];
image.at<cv::Vec3b>(y,x)[2] = newval[2];
関連
-
[解決済み】coutはstdのメンバではない
-
[解決済み】getline()が何らかの入力の後に使用されると動作しない 【重複あり
-
[解決済み] クラスにデフォルトコンストラクタが存在しない。
-
[解決済み】c++でstd::vectorを返すための効率的な方法
-
[解決済み】エラー。switchステートメントでcaseラベルにジャンプする
-
[解決済み】1つ以上の多重定義されたシンボルが見つかる
-
[解決済み】C++ - ステートメントがオーバーロードされた関数のアドレスを解決できない。
-
[解決済み】デバッグアサーションに失敗しました
-
[解決済み】変数やフィールドがvoid宣言されている
-
[解決済み】画像処理。コカ・コーラ缶」認識のためのアルゴリズム改良
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】クラステンプレートの引数リストがない
-
[解決済み] エラーが発生する。ISO C++は型を持たない宣言を禁じています。
-
[解決済み】変数 '' を抽象型 '' と宣言できない。
-
[解決済み】関数名の前に期待されるイニシャライザー
-
[解決済み] クラスにデフォルトコンストラクタが存在しない。
-
[解決済み】「corrupted size vs. prev_size」glibc エラーを理解する。
-
[解決済み】cc1plus:エラー:g++で認識されないコマンドラインオプション"-std=c++11"
-
[解決済み】C++の余分な資格エラー
-
[解決済み】クラステンプレートの使用にはテンプレート引数リストが必要です
-
[解決済み】エラー:不完全な型へのメンバーアクセス:前方宣言の