佳能EOS 80D
佳能 EOS 80D單反套機(EF-S 18-135mm F3.5-5.6 IS USM),中端旗艦級單反相機,操控性佳易上手,相比前代70D參數性能再次升級。配備了佳能自主研發制造的新CMOS圖像感應器,有效像素約為2420萬。
佳能EOS 80D樣張
佳能EOS 80D對焦
全45點十字型自動對焦感應器與進化的全像素雙核CMOS AF。中央1點采用對應F2.8光束的雙十字結構,實現了高清度對焦。即使在最大光圈F8是,也有最多27個對焦點可用。現京東購買套機只需8799,另外還有UV濾鏡、讀卡器、鏡頭清潔套裝、相機包及存儲卡促銷相贈,同時進行的也有加價購,心動不如行動,下方是直達聯系哦!
品牌型號:佳能 EOS 80D單反套機(EF-S 18-135mm F3.5-5.6 IS USM)
參考價格:8799
章的主題為通過聲音來控制您的電腦。當下的語音識別已經相對比較成熟,比如有的車載系統,或手機都支持語音識別,您可以通過聲音來下達指令。比如您告訴導航系統"我要去北京",它會自動幫您設置導航目的地,并開始導航。通過閱讀本章內容,讀者將了解如何通過聲音來控制您的電腦及語音控制的基本原理。
當下的語音識別很火,也相對比較成熟,正確率也極高。而基于語音識別的應用也慢慢的變的非常多。那么我們能不能自己用Python寫一個程序,這個程序能夠根據您的指令去做一些事情。比如你對著電腦說一聲,"打開百度",然后該程序就自動幫你打開瀏覽器,并登陸到百度的搜索主頁。這就是我們本章要解決的問題。
現在我們已經知道我們要解決的問題了,那么接下來就得想想如何實現它了。
首先,一般筆記本電腦都有內置麥克風,臺式機可能需要戴個耳機了。我們說的話可以被麥克風錄下來,接下來就需要把錄下來的這段話進行語音識別,也就是把這段錄音轉化為文字。那么有了文字就好辦了,我們可以檢查這段文字是否是我們支持的操作。假如我們現在支持"打開百度",如果您就說了"打開百度",那么將識別到的文字和支持的操作進行對比,發現是支持的,則程序開始自動打開瀏覽器,并登陸到百度的主頁。
我們基于這個思路來實現的一個簡單的聲控程序。
本節會將所有用到的模塊的安裝及功能進行簡單的介紹。有的模塊很強大,但這里只介紹我們會用到的功能,拋磚引玉。讀者可以對感興趣的模塊進行深入學習。
安裝PyAudio模塊的命令如下:
>pip install --user pyaudio
Collecting pyaudio
https://files.pythonhosted.org/packages/72/ad/80dd3ca3a26a2ea74ca7706a8a275712e13b4f884644ae7dc38fb7342bae/PyAudio-0.2.11-cp36-cp36m-win32.whl
Installing collected packages: pyaudio
Successfully installed pyaudio-0.2.11
PyAudio是一個免費開源軟件,是一個跨平臺的語音I/O 庫。通過PyAudio您能夠很容易的用Python去播放和錄制音頻,可以工作在windows,Mac和Linux操作系統上。我們將用這個庫錄制音頻。
安裝百度AIP模塊的命令如下:
>pip install baidu-aip
Collecting baidu-aip
Using cached https://files.pythonhosted.org/packages/85/ba/5e94b935b7af791573f1b5bc1b4084311430df8804401da34f27e3708194/baidu-aip-2.2.17.0.tar.gz
Requirement already satisfied: requests in c:\program files (x86)\python3.6.8\lib\site-packages (from baidu-aip) (2.22.0)
Requirement already satisfied: certifi>=2017.4.17 in c:\program files (x86)\python3.6.8\lib\site-packages (from requests->baidu-aip) (2019.6.16)
Requirement already satisfied: chardet<3.1.0,>=3.0.2 in c:\program files (x86)\python3.6.8\lib\site-packages (from requests->baidu-aip) (3.0.4)
Requirement already satisfied: idna<2.9,>=2.5 in c:\program files (x86)\python3.6.8\lib\site-packages (from requests->baidu-aip) (2.8)
Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in c:\program files (x86)\python3.6.8\lib\site-packages (from requests->baidu-aip) (1.25.3)
Installing collected packages: baidu-aip
Running setup.py install for baidu-aip ... done
Successfully installed baidu-aip-2.2.17.0
百度語音識別通過 REST API 的方式給開發者提供一個通用的 HTTP 接口。需要上傳完整的錄音文件,錄音文件時長不超過60s。我們將通過這個API進行解析我們錄制的音頻文件,將其轉化為文字。
百度語音提供2種普通話及英語、粵語、四川話識別模型。
普通話搜索模型同時能識別簡單的常用英語語句,效果同手機百度。
讀者需要登陸百度AI語音識別界面申請相應的App ID及API Key,如圖14-1所示。
圖14-1 百度云語音識別App ID及API Key示例
安裝wave模塊的命令如下:
>pip install Wave
Wave模塊提供了一個處理WAV聲音格式的便利接口。它不支持壓縮和解壓縮,但是支持單聲道和立體聲。由于百度語音AI對上傳的音頻有特定要求,所以我們將會使用該模塊對我們錄制的音頻進行處理,然后再調用API進行轉換。
webbrowser是python的標準庫,不需要單獨安裝。
webbrowser模塊提供了high-level的接口讓我們可以很方便向用戶展示基于Web的文檔。大多數情況下,只需要調用open()函數就可以做到。我們這里要使用該模塊幫我們打開瀏覽器,并登陸到百度主頁。
到現在,萬事俱備只欠東風。讓我們開始coding吧。
小時候寫作文,老師教我們寫提綱,然后再去寫文章。而我們寫代碼也是一樣的,我們需要先做概要設計,然后再去做詳細設計,最后去編碼。道理都是類似的,我們始終要做到"頭頂有太陽,心中有地圖"這樣就不會走彎路甚至迷路。我們這里的偽碼就相當于概要設計+詳細設計。
import wave, pyaudio
import webbrowser
import os, time
def record_audio():
#調用wave進行錄音
#參照百度AI的要求進行語音的參數設置
def convert_audio_to_string_via_ai():
#將滿足AI解析要求的音頻通過API進行解析得到字符串
def handle_command():
#對得到字符串進行解析,比如字符串包含了"打開百度",則執行相應的操作
主函數:
recoard_audio() #電腦進行錄音
convert_audio_to_string_via_ai() #通過API將音頻內容轉化為文字
handle_command() #將得到字符串進行解析,并執行相應的操作
程序的運行效果如下圖14-2,程序啟動后先讓"打開百度",然后等待瀏覽器打開百度后,再告訴其"退出"程序。
圖14-2 程序運行效果
這里是完整的代碼實現,結合代碼和注釋,基本可以理解。
# -*- coding: utf-8 -*-
#導入需要用到的庫
import wave
import pyaudio
import webbrowser
import os,time
#從aip庫中導入AipSpeech接口
from aip import AipSpeech
#自己申請的APP_ID和KEY
APP_ID='11483452'
API_KEY='aaKCmDdZDkKUU9McEi1ePmAN'
SECRET_KEY='hrhoBeoE1PF3C9B4013no2tkSmx9L5Xb'
#初始化AipSpeech對象
aipSpeech=AipSpeech(APP_ID, API_KEY, SECRET_KEY)
CHUNK=1024
FORMAT=pyaudio.paInt16
RATE=8000
CHANNELS=1
RECORD_SECONDS=5
RECORDED_AUDIO_FILE="temp_audio.wav"
def recoard_audio():
"""
通過pyaudio記錄一個5秒的音頻文件
"""
p=pyaudio.PyAudio()
stream=p.open(format=FORMAT,
channels=CHANNELS,
rate=RATE,
input=True,
frames_per_buffer=CHUNK)
print("* recording will stat")
print("3")
time.sleep(1)
print("2")
time.sleep(1)
print("1")
time.sleep(1)
print("Go")
frames=[]
for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)):
data=stream.read(CHUNK)
frames.append(data)
print("* done recording")
stream.stop_stream()
stream.close()
p.terminate()
wf=wave.open(RECORDED_AUDIO_FILE, 'wb')
wf.setnchannels(CHANNELS)
wf.setsampwidth(p.get_sample_size(FORMAT))
wf.setframerate(RATE)
wf.writeframes(b''.join(frames))
wf.close()
def handle_command(command):
"""
根據命令字符串執行對應的操作
"""
if command is None:
return
elif '打開百度'==command:
print("正在打開百度")
webbrowser.open_new_tab("baidu.com")
elif '打開郵箱'==command:
print("正在打開郵箱")
os.system(r'"C:\Program Files (x86)\Microsoft Office\root\Office16\OUTLOOK.EXE"')
else:
#默認處理
print("不知道您想讓我做什么")
webbrowser.open("yonggangliu.com")
def get_file_content(filePath):
"""
獲取文件的內容,這里是音頻文件,其他文件也通用
"""
with open(filePath, 'rb') as fp:
return fp.read()
def convert_audio_to_string_via_ai():
"""
通過aipSpeech來解析音頻文件,得到語音對應的文字內容
"""
text=''
audio_content=get_file_content(RECORDED_AUDIO_FILE)
res=aipSpeech.asr(audio_content, 'wav', RATE, { 'lan': 'zh',})
if res['err_no'] !=0:
print("Please speak again")
elif 'result' in res:
#API返回的字符串是以。結尾的,所以這里去掉結尾的句號
text=res['result'][0][:-1]
else:
pass
return text
if __name__=="__main__":
while True:
recoard_audio()
command_str=convert_audio_to_string_via_ai()
print(command_str)
if command_str in ['退出', '結束']:
print("程序結束")
break
if len(command_str) > 0:
handle_command(command_str)
讀者可以在此基礎上編寫出自己的聲控程序。天馬行空,任意發揮。
我們的程序編寫好了,也運行良好,能解決我們的問題。現在如果想把它分享給我們親愛的其他同事,我們該怎么做呢?最好是將它打包為EXE文件,否則使用的人也需要安裝Python,且必須安裝所有的依賴庫,似乎太麻煩了,沒等聽您解釋完就不想用了。因此,我們需要將Python代碼進行打包,生成exe進行方便使用。
這里我們同時也提供了打包為EXE的代碼。由于我們使用pyinstaller進行打包,所以需要提前安裝。當然安裝也很簡單,使用pip命令就可以安裝。
pip install pyinstaller
安裝成功后我們就可以通過下面的代碼進行打包了。
接下來,將Python代碼轉換為exe程序,我們使用的是pyinstaller,具體的轉換代碼我實現為python代碼。只需要執行下面的Python代碼,就會調用pyinstaller生成一個單獨的exe文件。這種形式的優點是只有一個exe文件,其他所有的依賴的Python環境文件都被打包在該exe文件中。而缺點就是由此導致該文件比較大,而且每次執行都相當于有一個解壓到臨時目錄的過程,所以執行比較慢。
import os, shutil
from subprocess import Popen
if os.path.exists('dist'):
shutil.rmtree("dist")
if os.path.exists('build'):
shutil.rmtree("build")
if os.path.exists('__pycache__'):
shutil.rmtree("__pycache__")
handle=Popen("pyinstaller -F -w --add-data res;res -i res/bit.ico control-pc-via-voice.py")
handle.wait()
shutil.copyfile("dist/control-pc-via-voice.exe", "./control-pc-via-voice.exe")
shutil.rmtree("dist")
shutil.rmtree("build")
shutil.rmtree("__pycache__")
個人推薦將其打包為目錄,而不是單個exe文件。這樣的好處就是不需要每次執行都進行解壓到臨時目錄,而是直接在同目錄下調用執行,因此比較快。下面就是將Python文件打包為目錄的代碼,跟上面有區別,其中一個打包參數為-D。下面的腳本生成的目錄dist中,會有相應的exe文件,可以直接雙擊運行。
import os, shutil
from subprocess import Popen
if os.path.exists('dist'):
shutil.rmtree("dist")
if os.path.exists('build'):
shutil.rmtree("build")
if os.path.exists('__pycache__'):
shutil.rmtree("__pycache__")
handle=Popen("pyinstaller -D -w --add-data res;res -i res/bit.ico control-pc-via-voice.py")
handle.wait()
而為了更方便,我們這里會介紹如何將該目錄打包為安裝文件,這樣在給別人用的時候,只需要給一個安裝文件。用戶拿到該安裝文件后,安裝上之后就可以使用了,且使用感受更好。我們這里介紹一個將目錄打包為安裝文件的工具程序。該工具程序名為Inno Setup,是一個免費的工具軟件,網站主頁如下圖14-3所示。可以點擊Download Inno Setup鏈接進行下載,詳細信息可以登陸網站()進行了解。
圖14-3 Inno Setup主頁
這里,我們可以按照Inno Setup的引導來創建普通的程序安裝文件,創建完成后會生成內容如下所示的iss文件。當然,如果我們提前有該文件的話,可以直接用Inno Setup程序直接打開該文件,執行編譯來生成安裝文件。
; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
#define MyAppName "control-pc-via-voice"
#define MyAppVersion "2.2"
#define MyAppPublisher "ggang.liu, Inc."
#define MyAppExeName "control-pc-via-voice.exe"
[Setup]
; NOTE: The value of AppId uniquely identifies this application. Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{F3D8DE4F-EA0D-47E7-AFBC-7FE7A8EAD8D3}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
DefaultDirName={autopf}\{#MyAppName}
DisableProgramGroupPage=yes
; The [Icons] "quicklaunchicon" entry uses {userappdata} but its [Tasks] entry has a proper IsAdminInstallMode Check.
UsedUserAreasWarning=no
InfoAfterFile=C:\control-pc-via-voice\release\README.md
; Remove the following line to run in administrative install mode (install for all users.)
PrivilegesRequired=lowest
PrivilegesRequiredOverridesAllowed=dialog
OutputDir=C:\control-pc-via-voice\release
OutputBaseFilename=control-pc-via-voice-setup
SetupIconFile=C:\control-pc-via-voice\res\bt.ico
Password=dot
Compression=lzma
SolidCompression=yes
WizardStyle=modern
[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked; OnlyBelowVersion: 6.1; Check: not IsAdminInstallMode
[Files]
Source: "C:\control-pc-via-voice\dist\control-pc-via-voice\control-pc-via-voice.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\control-pc-via-voice\dist\control-pc-via-voice\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
[Icons]
Name: "{autoprograms}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{autodesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon
Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: quicklaunchicon
[Run]
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent
這里會打包生成的安裝文件是一個exe文件,我們雙擊執行安裝時會出現類似圖14-4所示的安裝界面,可以看出是一個很常見的程序安裝界面,跟其他程序安裝沒有什么區別,看起來更專業。
圖14-4 服務程序安裝界面
到這里,程序的打包安裝就介紹完畢,具體選擇哪種方式進行打包,可以根據具體情況而定。試著為自己的程序進行打包并安裝,讓我們的小工具的安裝使用足夠專業和易用。
在本章的學習中,我們了解到了語音控制系統的基本原理,那就是先錄音,然后將聲音文件轉換為字符串,最后基于字符串執行具體的操作。在這個過程中我們用到了百度的語音AI,當然有能力的讀者也可以使用阿里云或其他類似的系統。PyAudio模塊也為我們打開了一扇語音I/O的窗戶,至少我們知道有這么個模塊可以操作音頻設備。Wave模塊可以處理音頻文件。Webbrowser模塊可以通過瀏覽器打開某鏈接。當然我們這里用的都是最基本的功能,有興趣的同學可以做進一步深入的學習。
歡迎關注,轉發,收藏,謝謝[摳鼻]
Python實用案例編程入門:第一章 Python概述及為什么學Python
Python實用案例編程入門:第二章 字符串
Python實用案例編程入門:第三章 列表和元組
Python實用案例編程入門:第四章 字典和文件
Python實用案例編程入門:第五章 函數和類
Python實用案例編程入門:第七章 調式手段
Python實用案例編程入門:第六章 控制流語句
Python實用案例編程入門:第九章 爬蟲下載VOA每日廣播英語MP3
Python實用案例編程入門:第十章 用Python處理音頻文件
Python實用案例編程入門:第十一章 做一個年會抽獎程序
Python實用案例編程入門:第十二章 測試線預訂程序
Python實用案例編程入門:第八章 如何自動連接WIFI
Python實用案例編程入門:第十三章 自動收發電子郵件,遠程控制
品:80D(單機)佳能數碼相機
時隔兩年多,佳能帶來了全新升級的80D單反相機。對于佳能來說,70D算得上是中端市場上的主力機型,這一次升級之后80D將接過70D的旗幟。作為APS-C畫幅的中堅力量,佳能80D的各項升級幅度都可謂不小,首先像素提升至了主流的2400萬像素,并且換用了DIGIC 6處理器;在對焦性能上,80D不僅換用了全新的45點對焦系統,而且實時取景對焦有了進一步的升級。本次升級不光是機身方面,鏡頭上佳能帶來一枚全新的18-135mm套機鏡頭,這枚鏡頭不僅換用了USM馬達,而且具有視頻對焦底座,算得上是很有新意的鏡頭了。下面我們就進入今天的評測,來看一下佳能80D有哪些與眾不同的地方。
·全面升級 脫胎換骨于70D
目前來看,APS-C畫幅單反仍然是兵家必爭之地,80D注定是一臺主打銷量的高性能APS-C單反相機。作為70D的繼承人,這款相機從外觀到核心都有著不小的變化。從整體來看,佳能80D是70D的完全升級版,從核心部件傳感器和處理器,再到對焦組件,再到整體的外觀設計,都是全新的。
佳能80D單反相機
對于80D來說,在完成了所有的對比測試后,筆者認為這款相機相比于70D,最重要的提升在于對焦系統的升級。新的45點對焦系統覆蓋面積更廣泛,而且弱光下對焦性能更好,其中27個點支持F8光圈下對焦,鏡頭適應性更好。另一方面,80D的主要改進還是傳感器的升級,雖然2400萬像素相比于70D僅提升了400萬,但是在細節表現和寬容度上都有不俗的表現。下面,我們先來簡單看一下佳能80D和70D的主要參數對比。
佳能80D/70D參數對比
其實對于這個級別的單反相機來說,用戶最關心的莫過于幾方面:畫質、對焦性能和價格。毫無疑問,提升過像素肯定會對畫質有幫助,那么究竟80D畫質比70D好多少,全新的45點對焦系統有有哪些改進,下面我們就進入今天的評測。
產品:80D(單機)佳能數碼相機
·外觀解析 全新設計更加高端
首先我們先來看一下80D的外觀設計。對于80D來說,外觀設計與70D有很大區別,整體外觀更加圓潤,細節上也有了很多改進,下面我們就先來看一下80D的外觀解析。
更多外觀大圖請點擊:《中端單反新標桿 佳能EOS 80D真機圖賞》
80D整體設計與70D保持一致,但是機頂和邊角更加圓滑
佳能80D機身側面
80D在整體設計上,其實要比70D高大上了不少,新機身的材質依然是塑料,但是整體手感還是很不錯的。由于機身外觀有較大改動,因此看上去更加圓潤了。值得注意的是新的設計非常喜歡不對稱設計,例如接口的傾斜擺放,都與現在的大部分機器不一樣。
80D依然采用了104萬像素的翻轉觸摸屏
機身來看,80D依然采用了翻轉屏+觸控的屏幕,像素依然為104萬像素。但是從成像質量來看,似乎80D的畫面更加清晰一些,亮度也更高了一些,能夠在強光下更好的看清畫面。
其他方面,機身頂部并沒有太多改動,依然是傾斜肩屏
左側轉盤增加了濾鏡和C1/C2兩個用戶自動檔位
其他方面,機身頂部設計依然是傾斜肩屏。不過這并不影響數字的顯示,這塊肩屏仍然能夠完整的顯示大部分的參數信息。左側的模式撥輪上,增加了濾鏡和C1/C2兩個用戶自定義模式。
值得注意的是佳能80D的麥克風收聲接口在機身兩側,不再是在機身頂部兩側了(另一個在對稱位置)
最后來看一下接口設計。這一次80D的接口還算比較全面,但是接口分布不再是規整的豎排長條狀,而是傾斜的形狀,究竟好不好用筆者不好說,剛上手倒是真的有些不習慣。其他接口大家都比較熟悉,這次80D配備了監聽耳機接口,對于視頻來說還是很重要的。
這次80D具有監聽耳機接口,更加適合視頻拍攝錄制
總而言之,佳能80D和70D的機身設計還是有很大區別的,我們會在后面為大家再進行對比。80D整體風格更加圓潤,重量上略有減輕。但是新鏡頭的質感與機身非常協調,整體具有高端相機的質感。
電池方面,佳能80D采用了LP-E6N,也就是比原來的電池多65mAH
在續航方面,佳能80D的電池與7D2相同,為LP-E6N,也就是原來LP-E6的大容量版本,續航方面略有提升,但是幅度不大。總的來說,佳能80D基本上依照70D而來,但是進行了不少細節的改動,算是脫胎換骨于70D。
產品:80D(單機)佳能數碼相機
·新鏡頭 新套頭加入超聲波馬達
下面我們來看一下新的套機鏡頭鏡頭。這一次佳能發布80D,這枚全新的18-135mm f/3.5-5.6鏡頭也是重要的角色。之所以說他重要,是因為這是第一支配備有超聲波馬達的18-135mm套機鏡頭,而且用料做工也要明顯好于上一支18-135mm鏡頭。另外一方面,這枚鏡頭具有一個視頻拍攝底座,搭配底座可以實現視頻拍攝時的精確電子變焦與調焦,可惜的是這一次筆者并沒有一同拿到底座。
80D搭配的是全新的18-135mm鏡頭
從用料和做工上來看,新鏡頭感覺要比老鏡頭高級一些。而且這枚18-135mm f/3.5-5.6鏡頭相比于上一代,體積上要大了一些,而且要重了一些。從光學結構上看,兩枚鏡頭差別并不大,而且鍍膜顏色也基本一致。新鏡頭設計上沒有了頂部的銀圈和佳能LOGO,看上去更高大上。
新鏡頭的涂層和新的高端L鏡頭相同,更加顯得高端
光學結構、鍍膜等等,兩枚鏡頭完全一致
之前的18-135mm f/3.5-5.6采用的是STM步進式馬達,步進式馬達雖然精度足夠,但是調節速度上仍然無法和超聲波馬達相比,因此新鏡頭的對焦速度有了非常明顯的提升。
鏡頭底部的底座接口
總的來說,從某種意義上來說,新鏡頭的升級其實非常厚道,因為新鏡頭是隨套機一同銷售,相差價格并不大,但是對焦速度上卻快了非常多,官方稱對焦速度提升達4.9倍,實際體驗中的確速度非常出色。新鏡頭可以將80D的對焦系統表現得淋漓盡致,更加適合表現80D的對焦性能。
產品:80D(單機)佳能數碼相機
·外觀對比 細節設計大不相同
好了,說了這么多我們將目光回到機身本身,下面我們就來看一下80D和70D的對比圖。佳能70D和80D在體積上基本一致,但是新鏡頭的棱角要圓潤很多。
正面來看,佳能80D更加圓潤
其實相比于70D,80D的設計主要變化在于細節改進,乍一看依然是佳能的兩位數系列,整體風格并沒有改變。在背部設計上,佳能80D的后背與70D基本一致,但是手柄區域有了一定的改變。蒙皮區域有了一定減小,而且按鍵設計風格有所不同。
背部設計差異
在頂部設計上,佳能80D與70D基本一致。兩個區別一個在于撥輪,多了三個新的檔位,一個在于麥克風位置。麥克風原來設計于機頂兩側,而新的80D則在機頂正面部分的兩邊,更加有利于正面收聲。
頂部撥輪設計區別
肩屏設計完全一樣
最后看一下屏幕和菜單,佳能80D的屏幕與70D在參數上完全一致,但是直觀感受上80D的屏幕亮度和鮮艷度更高。一級菜單和快速調整菜單兩臺機器保持一致,但是MENU下的二級菜單,80D更符合現代習慣。
屏幕設計在規格上完全一致
最后來看接口,80D最大的改進是多了耳機接口,這樣拍攝視頻時可以實時監聽收聲效果,不用擔心拍出來的片子聲音有問題了。
兩臺相機接口對比
通過對比可以看到,佳能80D與70D的差異主要體現在細節上,在整體來看80D與70D的外觀變化不太大。不過從使用感受來看,80D還是要比70D好用一些的。下面我們就進入實際的評測環節,來看一下佳能80D的畫質表現和使用表現究竟如何。
產品:80D(單機)佳能數碼相機
·控噪對比 JPG算法改進明顯
下面我們來看一下相機的主要畫質測試。首先要看的自然是控噪對比。我們知道從70D到80D像素提升了約400萬,但是與此同時處理器也由DIGIC 5+提升到了DIGIC 6,所以80D的控噪如何,我們用一組對比來一起看一下。
佳能80D/70D控噪測試(JPG)
首先看到的是JPG的控噪對比,JPG控噪對比可以直接看出兩款相機的控噪好壞。從對比來看,在JPG直出上來看,80D的畫面比70D要干凈,直接出片噪點更少。所以JPG畫質上,得益于新的處理器和更新的算法,80D在直出畫質上還是有優勢的。
佳能80D/70D控噪測試(RAW)
下面我們看一下RAW文件的對比,這樣可以看到相機的原始畫質。從RAW文件對比來看,80D的優勢還是這塊DIGIC 6處理器,RAW文件的控噪與70D的差距并不大。可以看到80D的低感更好一些,但是高感與70D基本相同。考慮到這款相機提升了400萬像素,這個結果還是可以接受的。
產品:80D(單機)佳能數碼相機
·畫質細節 新機器解析力更出色
解析力的控噪是一方面,另一方面,我們來看一下兩款相機的逐級寬容度解析力對比。這里我們同樣對比佳能80D和70D在JPG和RAW文件兩種格式下,在不同ISO時的分辨率表現,這樣可以直觀看到提升高感對于兩臺機子的細節損失有多大。
佳能80D/70D逐級感光度分辨率測試
從測試來看,其實兩臺相機的算法上并沒有太大區別,我們可以看到相同的鏡頭相同的光圈下,80D的解析力要稍好于70D。但是筆者也發現18-135mm鏡頭由于光學結構沒有變,所以對于套機來說,鏡頭在一定程度上制約了機身的發揮。回到逐級感光度測試中,我們可以看到,在ISO 3200前,80D在分辨率上優勢都比較明顯,特別是ISO 800到1600之間,差距最為突出。
佳能80D相機ISO 1600下100%截圖
佳能70D相機ISO 1600下100%截圖
在分辨率上,80D畢竟多了400萬像素,還是具有一定優勢的。但是筆者認為,80D的一大優勢在于JPG畫質而非RAW文件,80D的JPG算法更加出色,更加適合家庭用戶直出使用。
產品:80D(單機)佳能數碼相機
·寬容度測試 寬容度提升一檔
下面我們看一下相機的寬容度測試。我們知道寬容度一向不是佳能的強項,但是從5DS開始,佳能的寬容度已經有了不小的提升。下面我們就來看一下兩款相機的寬容度變化,測試中我們使用低感和高感兩種測試模式,在這一頁我們主要看一下佳能80D的低感寬容度表現。
佳能80D/70D寬容度對比(ISO 100)
寬容度其實是一個比較難以刻畫的數值,雖然可以量化,但是量化標準并不一定等同于實際使用,就好比環境光照強度會大幅度影響高感控噪一樣。從實際使用中個,筆者認為佳能80D在真實環境下可以做到-3.5EV到+1.5EV的寬容度調整范圍,相比于70D已經有很大的提升了,應對風光拍攝中的大光比有著非常出色的表現。下面我們看一下更加苛刻的寬容度測試內容。
產品:80D(單機)佳能數碼相機
·高感寬容度 高感下與70D差異不大
下面我們來對比下提高感光度后佳能80D/70D寬容度差異。我們知道寬容度會隨著感光度提升而下降,而且實際使用中,高感下寬容度要比低感下更加實用。我們先來看個極端的,ISO 3200下的寬容度。
佳能80D/70D寬容度對比(ISO 3200)