顯示廣告
隱藏 ✕
看板 Knuckles
作者 Knuckles(阿德)
標題 Re: DIP的作業1
時間 2007年10月21日 Sun. PM 02:40:38


之前貼的那個是處理彩色圖片用的
現在貼一下用灰階圖的方法

首先CImage要改寫一下,請按下面的檔另存,
把舊的那兩個CImage.h、CImage.cpp蓋掉
CImage.zip

接著會用來測試的小圖在這:
test_gray
如果想用灰階的lena:
lena_gray

然後main.cpp的程式碼改這樣:
#include <iostream>
#include <math.h>
#include "CImage.h"

void main()
{
    int x1,y1,x2,y2;
    CImage img1; //產生一個CImage物件
    img1.LoadBmpFile("test_gray.bmp"); // 載入圖片
    int height1 = img1.GetHeight(); // 取得圖檔的高
    int width1  = img1.GetWidth();  // 取得圖檔的寬

    float scale_h = 0, scale_w = 0;
    printf("請輸入高與寬的縮放比例:");
    scanf("%f %f", &scale_h, &scale_w); 
    int height2 = (int)(height1*scale_h + 0.5);
    int width2  = (int)(width1*scale_w + 0.5);
    CImage img2; //產生第二個CImage物件
    img2.Create(width2,height2,8); //建立一張8 bits per pixel的圖片

    printf("Zoom-in using nearest-neighbor interpolation\n");
    BYTE value; 
    for(y2=0; y2<height2; y2++){
        for(x2=0; x2&ltwidth2; x2++){
	
	
x1 = (int)(x2/scale_w);
	
	
y1 = (int)(y2/scale_h);
	
	
value = img1.GetGrayPixel(x1,y1);
	
	
img2.SetGrayPixel(x2,y2,value);
        }
    }
    img2.SaveBmpFile("test_gray2.bmp");
    printf("已儲存為圖檔,檔名為test_gray2.bmp\n");

    system("pause");
}
※ 引述《Knuckles》之銘言:
> 怕大家還是不會用那個CImage來讀寫圖片
> 來示範一下使用Nearest-neighbor interpolation做影像縮放的程式碼
> ※ 引述《Knuckles》之銘言:
> > 我有本C語言影像處理的書裡面有相關的內容
> > 掃起來給大家參考一下
> > C語言影像處理ch10

--
※ 來源: 台大電信 DISP 實驗室 (http://disp.twbbs.org)
※ 作者: Knuckles  來自: 140.112.175.130  時間: 2007-10-21 14:40:38
※ 編輯: Knuckles  來自: 140.112.175.130  時間: 2007-10-21 14:41:15
※ 編輯: Knuckles  來自: 140.112.175.130  時間: 2007-10-21 14:44:19
※ 編輯: Knuckles  來自: 140.112.175.130  時間: 2007-10-21 14:45:45
※ 編輯: Knuckles  來自: 140.112.175.130  時間: 2009-05-31 15:08:05
※ 編輯: Knuckles  時間: 2010-10-23 04:39:36  來自: 111-248-0-184.dynamic.hinet.net
※ 同主題文章:
  10-10 16:32 Knuckles □ DIP的作業1
  10-17 02:39 Knuckles Re DIP的作業1
  10-17 21:53 Knuckles Re DIP的作業1
● 10-21 14:40 Knuckles Re DIP的作業1
  10-21 16:03 Knuckles Re DIP的作業1
※ 看板: KnucklesNote 文章推薦值: 0 目前人氣: 0 累積人氣: 897 
※ 文章分類: 程式設計 C/C++
r)回覆 e)編輯 d)刪除 M)收藏 ^x)轉錄 同主題: =)首篇 [)上篇 ])下篇