Saya sedang membaca Gambar Skala Abu-abu .img (header 512 byte, 512 x 512 piksel x 8 bit per piksel).
Di sana saya menentukan ambang batas untuk mengubah gambar Skala Abu-abu menjadi gambar biner (hitam/putih).
Tetapi ketika saya menetapkan 0 pada piksel, ternyata menjadi biru muda (#01fffd)?!?! Saat saya menggunakan nilai 2 warnanya hampir hitam (#020100).
Bisakah Anda menjelaskan kepada saya bagaimana hal ini bisa terjadi?
Saya membaca gambar seperti ini:
int width = 512;
int height = 512;
File* imageFilePointerIn = fopen("image.img", "r+b");
File* binaryImageFilePointerOut = fopen("imageOut.img",
"w+b");
unsigned char* header = new unsigned char[512];
unsigned char** imageData = new unsigned char*[width];
unsigned char** binaryImageArray = new unsigned char*[width];
fread(header, sizeof(char), 512, imageFilePointerIn);
for (int i = 0; i < width; i++) {
data[i] = new unsigned char[height];
fread(data[i], sizeof(char), height, imageFilePointerIn);
}
for (int i = 0; i < width; i++) {
binaryImageArray[i] = new unsigned char[height];
}
char unsigned thresholdBinaryImage = 128;
for (int i = 0; i < width; i++) {
for (int j = 0; j < height; j++) {
if (thresholdBinaryImage <= data[i][j]) {
binaryImageArray[i][j] = 255;
} else {
binaryImageArray[i][j] = 0;
}
}
}
fwrite(header, sizeof(char), headerSize, binaryImageFilePointerOut);
for (int i = 0; i < width; i++) {
fwrite(binaryImageArray[i], sizeof(char), height,
binaryImageFilePointerOut);
}
fclose(binaryImageFilePointerOut);
fclose(imageFilePointerIn);
Saya tidak tahu mengapa warna bisa ditampilkan? Untuk menampilkannya saya mentransfer file .img ke file .ras dengan kode yang diambil dari internet. Tapi menurut saya kesalahannya tidak mungkin terjadi karena saya melihat orang lain menggunakan kode yang sama untuk mengubah .img Grayscales menjadi .ras hanya untuk ditampilkan tanpa warna.
Senang rasanya mendapat saran :).