VC++でjpgを読み込んで縮小してモノクロに表示するプログラムを作成しています。画像を走査するときに、あとで使う予定なのでグローバル変数pixに座標と画像の番号と濃度値を保存して、縮小されたモノクロ画像はちゃんと作画されるのですが(縮小化を行う関数内では濃度値も正しい)、別の関数で濃度値を参照すると値がすべて「0」になります。アドバイスいただけたら幸いです。
ヘッダー内での宣言
public:
short int pix[490464];
メインダイアログのソース抜粋
void CxxxxxxxxxDlg::Load(int pictbox);
CImage img_org, img_little;
CBitmap *myBMP;
CDC *pDC = m_pict11.GetDC();
CDC myDC;
int x, y;
COLORREF col;
CString buf;
int thr;
m_thrmono.GetWindowTextA(buf);
thr = atoi(buf);
img_org.Load(jpgファイル絶対パス);
img_little.Create(234, 160, 24, 0);
for(y=0; y<(img_little.GetHeight()); y++){
for(x=0; x<(img_little.GetWidth()); x++){
col = img_org.GetPixel((int)(x*3),(int)(y*3));
pix[x,y,pictbox] = GetRValue(col);
if(pix[x,y,pictbox]>thr){
pix[x,y,pictbox] = 255;
}else{
pix[x,y,pictbox] = 0;
}
img_little.SetPixel(x, y, RGB((pix[x,y,pictbox]),(pix[x,y,pictbox]),(pix[x,y,pictbox])));
buf.Format("x:%d y:%d pix:%d", x, y, pix[x,y,pictbox]);
m_display.AddString(buf);
}
}
(ピクチャーコントロールへの作画)
}
int CyyyyyyyyyyyDlg::Recog(int pictbox){
CString buf;
for(int y=0; y<160; y++){
for(int x=0; x<234; x++){
buf.Format("pict%d x:%d y:%d -> %d", pictbox, x, y, pix[x,y,pictbox]);
m_display.AddString(buf);
}
}
return distance;
}
上の関数でリストボックス(コントロール変数m_display)には0か255が入っているのですが、下の関数ではリストにはすべて0になってしまいます。
No.1ベストアンサー
- 回答日時:
配列へのアクセスの仕方が問題だと思いますよ
pix[x,y,pictbox] ですと 左から順に評価して最終的に pictboxの値で評価されたインデックスの値がとられると思います
単色のxyでデータを集めたいのであれば
char pix[160][234];
といった宣言をしておいて
pix[y][x]としてアクセスしましょう
RGBでデータを集めるなら
char pix[160][234][3];
などといった具合にします
解決しました!!こんな宣言の方法があったんですね。左から評価されるのも知りませんでした。
今、自分の質問を読み返すと添削が不十分なソースですが、こんな質問に的確に答えていただき、本当にありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- その他(プログラミング・Web制作) pythonのグローバル変数 2 2022/11/25 18:02
- C言語・C++・C# #include <stdio.h>int main(void) { int buf[100] = 6 2022/11/01 22:45
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- C言語・C++・C# プログラミング c言語 4 2023/03/07 01:05
- C言語・C++・C# C言語で再起関数とポインタを用いて文字列反転をする方法がわかりません。 4 2023/04/29 20:32
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- C言語・C++・C# C言語 3 2022/11/09 13:27
- JavaScript アップロードファイルの種類によって処理を分岐させたいのですが書き方が分からずアドバイスお願いします 4 2023/06/17 19:12
- 大学・短大 C言語線形リストの問題です 3 2022/12/22 00:45
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
2の補数を計算するプログラム
-
C++で表を作成したいのです ...
-
ヌメロンのプログラム
-
c言語プログラミングについて f...
-
迷路を脱出する経路探索プログ...
-
再起呼び出しの回数をカウント...
-
OpenCVによる4値化について
-
PIC16F88マイコンのC言語プログ...
-
C++ bmp 透過処理
-
C言語の問題
-
カードシャッフルのブログラム...
-
乱数で交互に偶数、奇数が、、、。
-
C言語で%を使わない余りの出し方
-
関数とビット列
-
異なるn個の整数からr個の整数...
-
放射状ブラー C言語で書いたの...
-
画像の拡大・縮小
-
C言語 格子点が多角形の中にあ...
-
16bitで乱数を生成する方法
-
プログラミングに関して
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
おすすめ情報