
OpenCVでの画像サイズ取得について教えてください。
rawデータをjpgにして取得し、その画像を4分割したいのですがエラーが3つ出てしまいます。
環境はVisual Studio2008です。
いろいろと調べたのですが、原因や対策がはっきりわからず、書き変えてもNGで困っています。
エラー:その1
「error LNK2028:未解決のトークン(0A00007B)"extern "C" struct IplImage *_cdecl cvLoadImage(char const roi.obj*.int)"(cvLoadImage@@$$J0YAPAU IplImage@@PBDH@Z)が関数"int _codecl main(int,char * *)"(?main@@$$HYAHHPAPAD@Z)で参照されました。」
エラー:その2
「error LNK2019: 未解決の外部シンボル"extern "C" struct IplImage * codecl cvLoadImage(char const *.int)" (?cvLoadImage@@$$J0YAPAU IplImage@@PBDH@Z)が関数"int_codecl main(int, char * *)" (?main@@$$HYAHHPAPAD@Z)で参照されました。」
エラー:その3
「fatal error LNK1120: 外部参照2が未解決です]
'==================
#pragma warning(disable : 4819)
#include <cv.h>
#include <highgui.h>
#include <stdio.h>
#define DIVX (4)
#define DIVY (4)
#define DIVXY (DIVX*DIVY)
int main (int argc, char **argv)
{
int w, h
IplImage *img=0;
img=cvLoadImage("C:\・・・\\testfile.jpg, CV_LOAD_IMAGE_GRAYSCALE);
w = img->width - img->width % DIVX + DIVX;
h = img->height - img->height % DIVY + DIVY;
printf("幅は%w, 高さは%h です。 \n");
}
'===============================================
画像サイズを取得し、画像を4分割したあと、画素値を変更したいと思っています。
できればjpgに変換せず、rawデータそのものの精度の画像を直接扱いたいのですが、
その場合、cvLoadImageでどう表記すると実現できるのでしょうか。
また、OpenCVのグレースケールは、何チャンネルなのでしょうか。
プログラム経験はありますが、OpenCVを使うため、C言語の勉強も始めたばかりです。
なにか見当違いな質問をしていたら申し訳ありません。
お忙しいところすみませんが、もしどなたか解決策をアドバイスいただける方がいらっしゃると
大変助かります。
どうぞ宜しくお願い致します。
No.2ベストアンサー
- 回答日時:
>より幅のある数字の情報を元に、機械がもう少し緻密な判断ができるようにするには、
>通常は何チャンネルを使うのがいいでしょうか。
それは「チャンネル数」ではなく「深さ/精度」です。
グレースケールは「明るさ」というチャンネル1つで表わすものです。その数値の範囲に、たとえば8bit整数(0~255)とか16bit整数(0~65535)とかの「深さ」があります。
また、浮動小数点を使った表現もできます。32bit(float型相当)と64bit(double型相当)のものが使えます。
チャンネル数は例えば、明るさの他に色相,彩度の3チャンネルとか、RGBの3チャンネルとかです。
>(グレースケールにもRGBで表現させるなど、何パターンかあるようですが)
すべての色をR=G=Bにすれば、実質グレースケールです。RGBカラーにしか対応していないフォーマットでグレースケールを表現するときに使います。
>チャンネル数の問題ではなく、その後どういう処理をするか、がポイントでしょうか。
浮動小数点を使って精度を上げた方がよいケースも、逆に、2値化した方がいいケースもあります。
kmee様
連日、わかりやすい回答をくださいましてありがとうございます。
考え違いしていたことがよくわかりました。
今回の目的には「深さ/精度」がポイントであって
浮動小数点を使って精度を上げた方がよいケースかもしれない、
と検討をつけることができました。
自分なりにいろいろと調べましたが行き詰っていたところに、
ここまでクリアなアドバイスをいただけまして
本当に助かりました。
いただいた情報を元に勉強して、進めてみます。
どうもありがとうございました!
No.1
- 回答日時:
まず、コンパイルエラー1,2は「追加ライブラリ」の設定がしてないためだと思われます。
cxcore.lib highgui.lib 等を追加する必要があります。1.x系と2.x系でファイルの名前と場所とか違ったと思うので、確認してください。
その3は上の2つがリンクできなかったので最終的な実行ファイルが作成できなかった旨を伝えるものです。なので、上のエラーがなくなれば出なくなります。
・RAWデータの読み込み
http://opencv.jp/opencv-2svn/c/reading_and_writi …
にあるように、cvLoadImageはRAW画像に対応していません。
また、RAW画像はカメラの機種、メーカーによりさまざまです。ヘッダがあって画像サイズ等の情報が埋め込まれているものもあれば、単純にデータが並んでいるだけのものもあります。
後者の場合は、なんらかの方法で画像サイズをプログラムに教える必要があります(プログラム中に#defineでベタ書きとか、コマンドライン引数にするとか、可逆圧縮または無圧縮フォーマットに変換しておくとか)
なんにせよ,RAWデータがどんな形式になっているかわからないことには、読み込み方法もわかりません。
・cvLoadImageでCV_LOAD_IMAGE_GRAYSCALEで読み込んだ場合、1チャンネルになります。
kmee様
こんなにもすぐに、詳細にアドバイスをくださいましてありがとうございました。
今日、早々にライブラリを追加したところ無事解決でき、ホッとました。
会社からログインできず、お礼の書き込みが遅くなりまして申し訳ありません。
RAWデータについて、ポイントがよくわかりました。
ヘッダがあるかどうか、また読み込み方法について、データの作成元に問い合わせてみます。
そもそも、パターン検出のために画像の白黒のコントラストを強めたい、という目的です。
cvLoadImageでCV_LOAD_IMAGE_GRAYSCALEで読み込むと1チャンネルとのことですが、
グラデーションをより緻密に表現するには、つまり
より幅のある数字の情報を元に、機械がもう少し緻密な判断ができるようにするには、
(グレースケールにもRGBで表現させるなど、何パターンかあるようですが)
通常は何チャンネルを使うのがいいでしょうか。
チャンネル数の問題ではなく、その後どういう処理をするか、がポイントでしょうか。
追加で質問をしてすみませんが、もし何かおわかりでしたらぜひアドバイスいただけると嬉しいです。
そもそもの3つの質問について、わかりやすく的確な回答をくださいまして
本当にありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- C言語・C++・C# 並列プログラミングのπ計算について 1 2022/07/16 22:30
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# const char** p;のとき、free(p)でC4090エラーとなるのはなぜですか 3 2023/03/31 16:28
- C言語・C++・C# 未解決の外部シンボル _printfが関数_mainで参照されました 1 2022/09/18 15:28
- C言語・C++・C# c言語でユーザ関数を利用して入力された文字列を反転させるプログラムを作りたいです。 3 2023/01/29 19:47
- C言語・C++・C# バイナリファイルをコピーするのにかかる時間を測りたいのですが実行するとFatel error:gli 2 2022/11/03 01:10
- C言語・C++・C# C++プログラミングコードにポリモーフィズムを取り入れ方を教えてください。 2 2023/06/09 11:17
- C言語・C++・C# 宣言する関数の形が決まっている状態で、 str1とstr2の文字列をこの順に引っ付けてstrに保存し 2 2022/05/30 18:21
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
このQ&Aを見た人はこんなQ&Aも見ています
-
好きな人を振り向かせるためにしたこと
大好きな人と会話のきっかけを少しでも作りたい、意識してもらいたい…! 振り向かせるためにどんなことをしたことがありますか?
-
歳とったな〜〜と思ったことは?
歳とったな〜〜〜、老いたな〜〜と思った具体的な瞬間はありますか?
-
みんなの【マイ・ベスト積読2024】を教えてください。
積読、ついついしちゃいませんか?そこでみなさんの 「2024年に買ったベスト積読」を聞きたいです。
-
あなたなりのストレス発散方法を教えてください!
自分なりのストレス発散方法はありますか?
-
今から楽しみな予定はありますか?
いよいよ2025年が始まりました。皆さんには、今から楽しみにしている予定はありますか?
-
OpenCVで32bit ヘッダ無しRaw画像表示
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
外部依存関係について
-
IP Helper APIを使うとエラーが...
-
外部シンボル" ~~"は未解決で...
-
C++STLについての質問です。
-
未定義シンボルエラー
-
クラスのメンバ変数の宣言方法
-
python エラー
-
エクセルのエラーメッセージ「4...
-
アプリケーションのDLLファイル...
-
<unistd.h>をVisualStudioでつ...
-
ビープ音が鳴りません・・・
-
” OS ビルド ” の意味が分か...
-
VBAを何回も作り直して、容量が...
-
VB2008で定数に色の設定をした...
-
visual studio2019でデバッグが...
-
DLL参照時に指定されたモジュー...
-
Excelのエラーで困ってます。
-
C言語でヘッダファイルにグロー...
-
「fatal error C1189」を回避す...
-
VC++でDeugモードOKで、Release...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
外部依存関係について
-
外部シンボル" ~~"は未解決で...
-
LNK2019: 外部シンボル どのよ...
-
C言語のエラー LNK1120: 外部参照
-
外部シンボルの未解決のエラー
-
クラスを使ったC++の関数を...
-
error LNK2001について
-
未解決の外部シンボル
-
実行ファイルの容量を減らした...
-
このプログラムを動かしたいの...
-
マルチディスプレイモニタのWin...
-
PathIsDirectoryを使って
-
LNK2001(Pro*c)
-
未定義シンボルエラー
-
ilink32について。'__setargv__...
-
LNK2019: 未解決の外部シンボル...
-
C++で、外部シンボル・外部参...
-
コンパイルエラー
-
Visual Stdio.netでビルドがで...
-
MFC C++ と C++/CLI の文字列
おすすめ情報