c++
Posted: 2013年7月07日(日) 15:47
はじめてこのフォーラムを利用させていただきます.
よろしくお願いします.
[1] 質問文
[1.1] 自分が今行いたい事は何か
PGM画像を読み込み、加工(4近傍鮮鋭化)したい.
4近傍鮮鋭化について(以下の9ページ目参照)
http://p.tl/PlpU
[1.2] どのように取り組んだか(プログラムコードがある場合記載)
#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
using namespace std;
...
class GS_img{
public:
int width; // 幅
int height; // 高さ
int bright; // 輝度
string **data; // 画素データ(2次元配列)
GS_img(int w=0, int h=0, int b=0){
width = w;
height = h;
bright = b;
data = NULL;
}
~GS_img(){}
// 画素データ動的メモリ確保
void make_Data(){
...
}
// 画素データ動的メモリ解放
void delete_Data(){
...
}
};
bool load_pgm(GS_img *gs, string file_name){
ifstream file; // ファイルストリーム
string buff; // 読み込み用バッファ
int width, height, bright; // 幅, 高さ, 輝度
stringstream ss; // 文字列ストリーム
string tmp; // 作業用変数
char c; // 作業用変数
...
// 画素データの読み込み
gs->make_Data();
for(int i=0; i<height; i++){
for(int j=0; j<width; j++){
ss.clear(); // 状態をクリア.
ss.str(""); // 文字列をクリア.
file.get(c); // 1文字読み込み
tmp=c; // string型に変換
gs->data[j] = tmp;
}
}
...
}
int main(){
string file1 = "gray.pgm";
string file2 = "gray_make.pgm";
GS_img *gs;
gs = new GS_img;
// PGMファイル読み込み
load_pgm(gs, file1);
...
gs->delete_Data();
}
[1.4] 今何がわからないのか、知りたいのか
読み込んだString型の文字列を数値(?)に変換したい.
例えば
data[j]=data[j]*(-1)
のように計算したい.
[2] 環境
[2.1] OS : Windows8 64bit
[2.2] コンパイラ名 : gcc
[3] その他
・c++は初めて5ヶ月ほどです.
よろしくお願いします.
よろしくお願いします.
[1] 質問文
[1.1] 自分が今行いたい事は何か
PGM画像を読み込み、加工(4近傍鮮鋭化)したい.
4近傍鮮鋭化について(以下の9ページ目参照)
http://p.tl/PlpU
[1.2] どのように取り組んだか(プログラムコードがある場合記載)
#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
using namespace std;
...
class GS_img{
public:
int width; // 幅
int height; // 高さ
int bright; // 輝度
string **data; // 画素データ(2次元配列)
GS_img(int w=0, int h=0, int b=0){
width = w;
height = h;
bright = b;
data = NULL;
}
~GS_img(){}
// 画素データ動的メモリ確保
void make_Data(){
...
}
// 画素データ動的メモリ解放
void delete_Data(){
...
}
};
bool load_pgm(GS_img *gs, string file_name){
ifstream file; // ファイルストリーム
string buff; // 読み込み用バッファ
int width, height, bright; // 幅, 高さ, 輝度
stringstream ss; // 文字列ストリーム
string tmp; // 作業用変数
char c; // 作業用変数
...
// 画素データの読み込み
gs->make_Data();
for(int i=0; i<height; i++){
for(int j=0; j<width; j++){
ss.clear(); // 状態をクリア.
ss.str(""); // 文字列をクリア.
file.get(c); // 1文字読み込み
tmp=c; // string型に変換
gs->data[j] = tmp;
}
}
...
}
int main(){
string file1 = "gray.pgm";
string file2 = "gray_make.pgm";
GS_img *gs;
gs = new GS_img;
// PGMファイル読み込み
load_pgm(gs, file1);
...
gs->delete_Data();
}
[1.4] 今何がわからないのか、知りたいのか
読み込んだString型の文字列を数値(?)に変換したい.
例えば
data[j]=data[j]*(-1)
のように計算したい.
[2] 環境
[2.1] OS : Windows8 64bit
[2.2] コンパイラ名 : gcc
[3] その他
・c++は初めて5ヶ月ほどです.
よろしくお願いします.