星期三, 12月 29, 2010

20101229 單眼基礎班-2 上課小記

光圈與快門的調整

快門:控制曝光時間的長短

在M模式底下 Canon 400D

快門的調整
  • 使用 轉盤 調整

光圈的調整
  • 按住 Av 加上 轉盤調整

Lab:
Canon 400D 50mm F1.8
將快門固定在 1/30 秒

拍攝 固定主體 從最大光圈到最小光圈  F1.8 ~ F9.0




將光圈固定在 F5.6
使用快門 1/15, 1/30, 1/60, 1/125, 1/250


1/15
1/30
1/60

 1/125
1/250




快門速度, 以 Canon 400D來說 30秒 到 1/4000 秒


B快門: 如果最長的快門時間都不足以曝光, 就會使用B快門

ISO: 控制感光大小, 數字越高感光度越高



Lab:
F5.6  1/60
從 ISO 100 ~ 1600 進行拍攝


100
200


 400
 800

1600



照片模糊,有可能是因為快門速度比較慢


曝光指數: 偵測曝光的狀況
觀景窗內的  -2 . . -1. . * . . 1 . . 2



Lab:
ISO定在 100
拍攝曝光指數在 -2, -1, 0, 1, 2


-2
-1
0
1
2



Lab:
調整光圈, 快門, ISO值 控制照片的曝光量到正常的狀況
以自己練習的例子  1/20  F2.0






測光原理的介紹
  • 反射率是指物體受光後反射光線的比率
  • 反射率越高,物體越亮     
  • 反射率越低,物體越暗
  • 當物體的反射率為18%時,對相機的測光系統來說就是曝光正常, 也就是18%灰(中間調)


Lab: 反射率
拍攝牆壁, 將曝光量EV值 調整在正中間
拍攝黑色的衣服,將曝光量EV值 調整在正中間
1.如果拍攝白色的牆壁, 拍出來的影像會比實際上的來的灰色


2.如果拍攝黑色的衣服, 拍出來的影像, 會比實際上來的灰色 (這個比較有感受)
(遇到越亮的物體要加 EV 值, 越暗要減 EV值)



測光模式
  • 點測光(局部測光):
    • 主題性的拍攝, 例如拍攝楓葉, 花燈, 人像
    • 如果背景與主題的亮度差異太大(背景太亮), 可以使用點測光, 以主體為主. 此時就不適用矩陣測光.


  • 中央重點測光(中央偏重平均測光):
    • 比點測光範圍再大一點
    • 大部分用於人像拍攝上面, 但是人像佔畫面比例較大

  • 矩陣測光(評價測光、權衡式測光):
    • 針對整張主題來測光
    • 大部分用於風景照片, 或是沒有主題的拍攝



Notes:
  • 測光的作用是找出中間色調


Lab:
使用三種不同的測光模式拍攝 日光燈
局部測光
  • 背景會相對於其他兩種測光會比較暗, 因為重點在主體

中央重點平均測光
權衡式測光



曝光模式
  • M模式:手動模式
  • A模式(AV):光圈優先
    • 攝影者決定光圈
    • 拍攝 Model 時
  • S模式(TV):快門優先
    • 攝影者決定快門
    • 比較昏暗的場景, 拍攝婚禮, 小朋友,寵物時
  • P模式:程式曝光
    • 會提供一組一組的光圈快門組, 利用轉盤來切換不同的組合(切換光圈)
  • Auto模式:全自動曝光


對焦模式
  • 手動對焦 MF
  • 自動對焦 AF
    • 單次自動對焦: AF-S  ONE SHOT
      • 對到焦並且鎖定才可以按下快門
      • 適用於 靜態主體, 例如風景
    • 連續自動對焦: AF-C  AI SERVO
      • 沒有對到焦也可以按下快門
      • 適用於 動態主體, 例如摩托車進行中
    • 智慧自動對焦: AF-A  AI FOCUS
      • 由相機來判定該用AF-C 還是AF-S


追焦: 使用 連續自動對焦 + 連續拍攝


對焦區域
  • 相機自動選擇對焦點
  • 手動選擇對焦點
    • 對焦的時候, 點選對焦的圖示, 轉動轉盤

星期二, 12月 28, 2010

20101228 單眼基礎班 上課小記

20101228 單眼基礎班

焦點
對焦
  • 練習對在眼睛上面(針對人像)

沒有對到焦點
  • 手震
  • 鏡頭問題

視角
  • 廣角端及望遠端
  • 數字比較小,可以看的比較廣
  • 數字比較大,可以看的比較遠


透視感
  • 畫面主體的大小和背景大小的關係


全片幅? APS-C?
  • APS-C 系統拍攝畫面比較窄,所以拍攝會比較望遠


焦段選購的建議
  • 一般使用者建議焦段最好要涵蓋 50mm


光圈是控制進光量的機構裝置
  • 大光圈進光量多
  • 小光圈進光量小
  • 對景深有影響


景深長--背景清楚
景深短--背景模糊

鏡頭口徑
Ø52

恆定光圈 vs 非恆定光圈
*焦段改變時, 光圈是否會改變

好的鏡頭在於可以還原物體的原色
低色散的鏡片,可以修正色散的程度, 可以還原原色
Canon: UD鏡

超音波馬達 USM

防手震 Image Stabilizer
  • 在腳架上面就不要開--不然會模糊
  • 快門速度高於安全快門不要開----不然會模糊


蘋果屋 相機設備出租
http://tw.user.bid.yahoo.com/tw/show/auctions?userID=isued2k&u=:isued2k

大俠攝影
http://www.dasha-photo.com/portal.php

三腳架
  • 根據相機重量來選擇
  • 最大高度根據自己身高來選購
  • Manfrotto
  • GITZO

雲台
  • 球形雲台
  • 三向雲台


閃光燈
  • 必須能改變照射方向(跳燈)
  • 閃燈出力有M模式(手動模式)
  • 閃燈出力控制模式要有TTL模式(自動模式Through The Lens)
  • 閃燈照射範圍必須能控制


偏光鏡 CPL
  • 濾掉雜光, 一般用於風景拍攝


減光鏡
  • 減少進光量,換到更長的曝光時間,例如拍水流及瀑布
  • ND8 減3格
  • ND400減9格


攝影背心
  • 拍攝溪流可以放小東西

星期六, 12月 25, 2010

20101225 Java 上課小記

20101225

Loop 迴圈
  • 讓某個語法重複執行
  • for 的後面沒有 ; 所以要執行的指令如果超過兩句, 要寫大括號確定執行範圍,不然只執行第一個指令.


for(變數初值設定條件; 變數增量運算)
{
        敘述
}

while迴圈
  • 條件成立時執行,直到條件被破壞


while(條件)
{
     
敘述
}


Lab: while
public class WhileLoop {
   
   public static void main(String[] args) {

       int i=0;

       while(i<10)
       {
           System.out.print("*");
           i++;
       }

   }

Lab: while

import java.util.Scanner;

public class Input2 {

   public static void main(String[] args) {
       Scanner sc = new Scanner(System.in);

       int w,h,ans=1;

       while(ans == 1)
       {
    System.out.print("Height:");
    h = sc.nextInt();
    System.out.print("Weight:");
    w = sc.nextInt();

    double bmi = w / Math.pow(h/100.0,2);
    System.out.println("BMI="+bmi);
       System.out.println("continue ?: (Type 1:continue 0:exit)");
       ans = sc.nextInt();
       }
   }

}


do  while
  • 先敘述再判斷


語法
do
{
    敘述
}while(條件);

Lab: do  while

import java.util.Scanner;

public class Input2 {

    public static void main(String[] args) {
       Scanner sc = new Scanner(System.in);

       int w,h,ans=1;

       while(ans == 1)
       {
   System.out.print("Height:");
   h = sc.nextInt();
   System.out.print("Weight:");
   w = sc.nextInt();

   double bmi = w / Math.pow(h/100.0,2);
   System.out.println("BMI="+bmi);
           do
           {
           System.out.println("continue ?: (Type 1:continue 0:exit)");
           ans = sc.nextInt();
           }while( !(ans == 0 | ans == 1));
       }
    }

}


Lab:  骰子

public class Loop {
   public static void main(String[] args) {
       //Math.random() 產生 0 ~ 1 之前的浮點數
        // *6 -- 6 為間距,  1 為 起始值
       int d = (int)(Math.random()*6)+1;
       System.out.println(d);
    }
}


Lab: 四顆骰子

public class Loop {
   public static void main(String[] args) {
       //Math.random() 產生 0 ~ 1 之前的浮點數
        // *6 -- 6 為間距,  1 為 起始值
       int d;
       
           for(int i = 0; i<4; i++)
           {
           d = (int)(Math.random()*6)+1;
           System.out.println(d);
           }
    }
}


Lab: 四顆骰子 並統計總數

public class Loop {
   public static void main(String[] args) {
       //Math.random() 產生 0 ~ 1 之前的浮點數
        // *6 -- 6 為間距,  1 為 起始值
       int d,s=0;
       
           for(int i = 0; i<4; i++)
           {
           d = (int)(Math.random()*6)+1;
           System.out.println(d);
           s += d;
           }
      System.out.println("Sum="+s);
    }
}


Lab:


public class Loop {
   public static void main(String[] args) {
       //d 用來產生點數, s用來加總, c 用來算次數
       int d,s=0,c=0;
        
        //計算 丟幾次骰子, 才丟到 16, 沒有丟到16 就繼續
       while(s != 16)
       {
               //每丟完一次, s 都要歸零
               s=0;
               //利用 for 迴圈 丟四個骰子
               for(int i = 0; i<4; i++)
               {
                    //Math.random() 產生 0 ~ 1 之前的浮點數
               // *6 -- 6 為間距,  1 為 起始值
               d = (int)(Math.random()*6)+1;
               //列出骰子點數
               System.out.println(d);
               //加總 骰子 的點數
               s += d;
               }
               //每丟完一次, 累積丟骰子的次數
               c++;
           //列出 骰子的總數
          System.out.println("Sum="+s);
           //列出第幾次丟骰子
          System.out.println("第"+c+"次");
           }
     //列出 總共丟幾次
    System.out.println("總共:"+c+"次");
    }
}

if 判斷式

語法
if(條件)
{
    敘述
}
else
{
    敘述
}

Lab: if 判斷式

import java.util.Scanner;
public class Ex_If {
   public static void main(String[] args)
   {
       //利用 Scanner 產生一個輸入
       Scanner sc = new Scanner(System.in);
       System.out.print("Enter Number:");
       //定義 n 為使用者輸入的數字
       int n = sc.nextInt();
       if(n == 0)
           System.out.println("Zero");
       else
           
               //將 n 除以2 判斷 餘數是否為 0
           if(n % 2 == 0)
               //如果餘數為 0 就是偶數
               System.out.println("偶數");
           else
               //如果餘數不0 就是奇數
               System.out.println("奇數");
   }
}