最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用Python的pytesseract庫開發(fā)簡易OCR圖片文字識別工具

 更新時間:2025年10月10日 10:12:25   作者:xcLeigh  
在日常工作和學(xué)習(xí)中,我們經(jīng)常會遇到需要將圖片中的文字提取出來的場景(如掃描件、截圖文字提?。?手動輸入不僅效率低還容易出錯,OCR技術(shù)可以幫我們快速解決這個問題,本文將帶大家從零開始,使用Python的pytesseract庫開發(fā)一個簡易但實用的OCR識別工具

前言

本文詳細介紹了如何用Python的pytesseract庫開發(fā)簡易OCR識別工具,適用于提取圖片文字。首先明確核心技術(shù)棧,包括依賴底層的Tesseract OCR引擎,以及pytesseract、OpenCV-Python、Pillow、argparse等庫及其作用。接著分步驟指導(dǎo)環(huán)境搭建,重點說明不同系統(tǒng)下Tesseract OCR引擎的安裝與配置,以及Python依賴庫的安裝。還解釋了圖片預(yù)處理的必要性及具體步驟,以提升識別準(zhǔn)確率。隨后提供完整代碼,按圖片預(yù)處理、OCR識別、結(jié)果保存、命令行交互模塊逐段詳解,并給出多場景使用教程。同時,針對常見報錯(如找不到圖片、Tesseract路徑問題、中文語言包缺失)提供了具體排查和解決方法,幫助用戶順利實現(xiàn)中英文圖片的文字識別與結(jié)果保存。

在日常工作和學(xué)習(xí)中,我們經(jīng)常會遇到需要將圖片中的文字提取出來的場景(如掃描件、截圖文字提取),手動輸入不僅效率低還容易出錯。OCR(Optical Character Recognition,光學(xué)字符識別)技術(shù)可以幫我們快速解決這個問題。本文將帶大家從零開始,使用 Python 的 pytesseract 庫開發(fā)一個簡易但實用的 OCR 識別工具,支持圖片文字提取、多語言識別(中英文),并提供基礎(chǔ)的圖片預(yù)處理功能以提升識別準(zhǔn)確率。

一、工具核心技術(shù)棧

在開始前,我們先明確實現(xiàn)這個 OCR 工具需要用到的技術(shù)和庫,確保大家理解每個組件的作用:

庫/工具作用說明
pytesseractPython 封裝的 Tesseract OCR 引擎接口,是實現(xiàn)文字識別的核心庫
Tesseract OCR EngineGoogle 開源的 OCR 引擎(pytesseract 依賴此引擎才能運行)
OpenCV-Python用于圖片預(yù)處理(如灰度化、二值化、降噪),提升 OCR 識別準(zhǔn)確率
Pillow (PIL)輕量級圖片處理庫,用于讀取圖片文件、轉(zhuǎn)換圖片格式(與 OpenCV 互補使用)
argparsePython 內(nèi)置庫,用于解析命令行參數(shù)(支持通過命令行傳入圖片路徑、語言等)

二、環(huán)境搭建(關(guān)鍵步驟)

pytesseract 不是純 Python 庫,它需要依賴底層的 Tesseract OCR 引擎,因此環(huán)境搭建分為 “引擎安裝”“Python 庫安裝” 兩步,缺一不可。

2.1 安裝 Tesseract OCR 引擎

根據(jù)你的操作系統(tǒng)選擇對應(yīng)的安裝方式,務(wù)必記住安裝路徑(后續(xù)配置需要用到):

(1)Windows 系統(tǒng)

下載安裝包:訪問 Tesseract 官方 GitHub Releases,下載最新的 Windows 安裝包(如 tesseract-ocr-w64-setup-v5.3.3.20231005.exe)。

運行安裝:

  • 點擊“Next”直到“Choose Components”頁面,勾選“Additional language data (download)”(默認只安裝英文,勾選后會下載中文等其他語言包)。
  • 記住安裝路徑(如 C:\Program Files\Tesseract-OCR),后續(xù)需要配置環(huán)境變量或在代碼中指定路徑。

配置環(huán)境變量(可選但推薦):

  • 右鍵“此電腦”→“屬性”→“高級系統(tǒng)設(shè)置”→“環(huán)境變量”。
  • 在“系統(tǒng)變量”的“Path”中添加 Tesseract 安裝路徑(如 C:\Program Files\Tesseract-OCR)。

驗證:打開 cmd,輸入 tesseract --version,若顯示版本信息則安裝成功。

(2)macOS 系統(tǒng)

通過 Homebrew 安裝(需先安裝 Homebrew):

# 安裝 Tesseract 引擎(默認包含英文)
brew install tesseract
# 安裝中文語言包(如需識別中文)
brew install tesseract-lang

(3)Linux 系統(tǒng)(以 Ubuntu 為例)

# 安裝 Tesseract 引擎
sudo apt-get install tesseract-ocr
# 安裝中文語言包
sudo apt-get install tesseract-ocr-chi-sim  # 簡體中文
sudo apt-get install tesseract-ocr-chi-tra  # 繁體中文

2.2 安裝 Python 依賴庫

打開終端/命令行,執(zhí)行以下命令安裝所需的 Python 庫:

pip install pytesseract opencv-python pillow argparse
  • pytesseract:Python 操作 Tesseract 引擎的接口。
  • opencv-python:圖片預(yù)處理核心庫。
  • pillow:輔助讀取和處理圖片。
  • argparse:解析命令行參數(shù)(內(nèi)置庫,安裝其他庫時會自動兼容)。

三、核心原理:為什么需要圖片預(yù)處理?

Tesseract OCR 引擎對 清晰、無噪音、高對比度 的圖片識別準(zhǔn)確率最高。如果直接識別帶有背景噪音、傾斜或彩色的圖片,很容易出現(xiàn)識別錯誤。因此,我們需要在識別前對圖片進行預(yù)處理,常見步驟包括:

  1. 灰度化:將彩色 圖片轉(zhuǎn)為黑白灰度圖,減少顏色通道干擾(OCR 對灰度圖更敏感)。
  2. 二值化:將灰度圖轉(zhuǎn)為純黑白圖(只有 0 和 255 兩個像素值),進一步提升文字與背景的對比度。
  3. 降噪:去除圖片中的斑點、雜色等噪音(如掃描件的黑點、截圖的陰影)。
  4. 傾斜矯正:若圖片傾斜(如拍攝的文檔),通過旋轉(zhuǎn)矯正為水平方向(本文簡化版暫不實現(xiàn),后續(xù)可擴展)。

通過預(yù)處理,能顯著提升 OCR 識別的準(zhǔn)確率,這是從“能用”到“好用”的關(guān)鍵步驟。

四、完整代碼實現(xiàn)與詳細解釋

我們將工具分為 3 個核心模塊:圖片預(yù)處理模塊、OCR 識別模塊、命令行交互模塊,代碼結(jié)構(gòu)清晰,便于后續(xù)擴展。

4.1 完整代碼

創(chuàng)建一個名為 simple_ocr_tool.py 的文件,復(fù)制以下代碼:

# 導(dǎo)入所需庫
import pytesseract
import cv2
from PIL import Image
import argparse
import os

def image_preprocessing(image_path):
    """
    圖片預(yù)處理函數(shù):灰度化 → 二值化 → 降噪
    :param image_path: 輸入圖片路徑(相對/絕對路徑)
    :return: 預(yù)處理后的圖片對象(OpenCV 格式,便于后續(xù)識別)
    """
    # 1. 讀取圖片(使用 OpenCV,默認讀取為 BGR 格式)
    img = cv2.imread(image_path)
    if img is None:
        raise FileNotFoundError(f"錯誤:未找到圖片文件 {image_path},請檢查路徑是否正確。")
    
    # 2. 灰度化:將 BGR 格式轉(zhuǎn)為灰度圖(單通道)
    gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    print("? 圖片灰度化完成")
    
    # 3. 二值化:使用 Otsu 閾值法(自動計算最佳閾值,適合對比度明顯的圖片)
    # cv2.THRESH_BINARY_INV:黑白反轉(zhuǎn)(文字為白,背景為黑,提升識別率)
    # cv2.THRESH_OTSU:自動閾值,無需手動調(diào)整
    _, binary_img = cv2.threshold(
        gray_img, 
        0, 
        255, 
        cv2.THRESH_BINARY_INV + cv2.THRESH_OTSU
    )
    print("? 圖片二值化完成")
    
    # 4. 降噪:使用高斯模糊去除小噪音(核大小 (3,3) 為經(jīng)驗值,可根據(jù)圖片調(diào)整)
    denoised_img = cv2.GaussianBlur(binary_img, (3, 3), 0)
    print("? 圖片降噪完成")
    
    return denoised_img

def ocr_recognize(preprocessed_img, lang='eng', tesseract_cmd=None):
    """
    OCR 識別函數(shù):將預(yù)處理后的圖片轉(zhuǎn)為文字
    :param preprocessed_img: 預(yù)處理后的圖片(OpenCV 格式)
    :param lang: 識別語言(默認 'eng' 英文,中文用 'chi_sim',中英文混合用 'chi_sim+eng')
    :param tesseract_cmd: Tesseract 引擎路徑(Windows 若未配置環(huán)境變量需指定)
    :return: 識別出的文字字符串
    """
    # 1. 配置 Tesseract 引擎路徑(僅 Windows 非環(huán)境變量配置時需要)
    if tesseract_cmd:
        pytesseract.pytesseract.tesseract_cmd = tesseract_cmd
    
    # 2. 將 OpenCV 格式圖片(numpy array)轉(zhuǎn)為 PIL 格式(pytesseract 更兼容)
    pil_img = Image.fromarray(preprocessed_img)
    
    # 3. 調(diào)用 Tesseract 進行識別
    # config 參數(shù):--psm 6 表示將圖片視為單一文本塊(適合大部分場景)
    custom_config = r'--oem 3 --psm 6'  # oem 3 表示使用默認 OCR 引擎
    text = pytesseract.image_to_string(pil_img, lang=lang, config=custom_config)
    
    # 4. 清理識別結(jié)果(去除空行、多余空格)
    cleaned_text = '\n'.join([line.strip() for line in text.split('\n') if line.strip()])
    
    print(f"? OCR 識別完成(語言:{lang})")
    return cleaned_text

def save_result(text, output_path='ocr_result.txt'):
    """
    結(jié)果保存函數(shù):將識別出的文字保存到本地文件
    :param text: 識別出的文字
    :param output_path: 輸出文件路徑(默認當(dāng)前目錄 ocr_result.txt)
    """
    with open(output_path, 'w', encoding='utf-8') as f:
        f.write(text)
    print(f"? 識別結(jié)果已保存到:{os.path.abspath(output_path)}")

def main():
    """
    主函數(shù):解析命令行參數(shù) → 調(diào)用預(yù)處理 → 調(diào)用 OCR 識別 → 保存結(jié)果
    """
    # 1. 解析命令行參數(shù)(讓用戶通過命令行傳入?yún)?shù),更靈活)
    parser = argparse.ArgumentParser(description="Python 簡易 OCR 識別工具(基于 pytesseract)")
    
    # 必選參數(shù):圖片路徑
    parser.add_argument(
        '--image', '-i', 
        required=True, 
        help='輸入圖片路徑(如:./test.png 或 C:\\images\\doc.jpg)'
    )
    
    # 可選參數(shù):識別語言(默認英文,中文用 chi_sim,中英文混合用 chi_sim+eng)
    parser.add_argument(
        '--lang', '-l', 
        default='eng', 
        help='識別語言(默認 eng 英文,中文 chi_sim,中英文混合 chi_sim+eng)'
    )
    
    # 可選參數(shù):Tesseract 引擎路徑(Windows 未配置環(huán)境變量時需指定)
    parser.add_argument(
        '--tesseract-cmd', '-t', 
        default=None, 
        help='Tesseract 引擎路徑(如 Windows:C:\\Program Files\\Tesseract-OCR\\tesseract.exe)'
    )
    
    # 可選參數(shù):輸出文件路徑(默認當(dāng)前目錄 ocr_result.txt)
    parser.add_argument(
        '--output', '-o', 
        default='ocr_result.txt', 
        help='識別結(jié)果輸出文件路徑(默認 ocr_result.txt)'
    )
    
    # 解析參數(shù)
    args = parser.parse_args()
    
    try:
        # 2. 圖片預(yù)處理
        print(f"?? 正在讀取圖片:{args.image}")
        preprocessed_img = image_preprocessing(args.image)
        
        # 3. OCR 識別
        print("?? 正在進行 OCR 識別...")
        recognized_text = ocr_recognize(
            preprocessed_img=preprocessed_img,
            lang=args.lang,
            tesseract_cmd=args.tesseract_cmd
        )
        
        # 4. 打印識別結(jié)果
        print("\n" + "="*50)
        print("?? OCR 識別結(jié)果:")
        print("="*50)
        print(recognized_text)
        print("="*50 + "\n")
        
        # 5. 保存結(jié)果
        save_result(recognized_text, args.output)
        
    except Exception as e:
        # 異常處理(如文件不存在、語言包缺失等)
        print(f"? 程序運行出錯:{str(e)}")

# 程序入口(只有直接運行腳本時才執(zhí)行 main 函數(shù))
if __name__ == "__main__":
    main()

4.2 運行效果

原圖:

解析后:

4.3 代碼逐模塊詳解

(1)圖片預(yù)處理模塊 image_preprocessing

該函數(shù)是提升識別準(zhǔn)確率的核心,步驟拆解:

  1. 讀取圖片:用 cv2.imread() 讀取圖片,返回 OpenCV 格式(numpy 數(shù)組,BGR 顏色通道);若圖片路徑錯誤,拋出 FileNotFoundError 并提示用戶。
  2. 灰度化:用 cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) 將彩色 圖轉(zhuǎn)為灰度圖(單通道),減少顏色干擾。
  3. 二值化:用 cv2.threshold() 實現(xiàn)自動閾值二值化:
    • THRESH_BINARY_INV:黑白反轉(zhuǎn)(文字變白、背景變黑),因為 Tesseract 對白色文字更敏感。
    • THRESH_OTSU:自動計算最佳閾值(無需手動調(diào)整,適合不同亮度的圖片)。
  4. 降噪:用 cv2.GaussianBlur() 進行高斯模糊,核大小 (3,3) 是經(jīng)驗值(可根據(jù)圖片噪音程度調(diào)整為 (5,5))。

(2)OCR 識別模塊 ocr_recognize

該函數(shù)負責(zé)調(diào)用 Tesseract 引擎提取文字:

  1. 配置引擎路徑:Windows 若未配置環(huán)境變量,需通過 tesseract_cmd 參數(shù)指定 Tesseract 可執(zhí)行文件路徑(如 C:\Program Files\Tesseract-OCR\tesseract.exe)。
  2. 格式轉(zhuǎn)換pytesseract 對 PIL 格式圖片兼容性更好,因此用 Image.fromarray() 將 OpenCV 格式(numpy 數(shù)組)轉(zhuǎn)為 PIL 格式。
  3. 核心識別pytesseract.image_to_string() 是核心接口,參數(shù)說明:
    • lang:識別語言(eng 英文、chi_sim 簡體中文、chi_sim+eng 中英文混合)。
    • config:額外配置,--psm 6 表示將圖片視為“單一文本塊”(適合大部分場景,如截圖、文檔掃描件);--oem 3 表示使用默認 OCR 引擎。
  4. 結(jié)果清理:用列表推導(dǎo)式去除識別結(jié)果中的空行和多余空格,讓輸出更整潔。

(3)結(jié)果保存模塊 save_result

open() 函數(shù)以 UTF-8 編碼(避免中文亂碼)將識別結(jié)果寫入文件,并用 os.path.abspath() 輸出文件絕對路徑,方便用戶查找。

(4)主函數(shù) main 與命令行參數(shù)

  • 參數(shù)解析:用 argparse 定義 4 個參數(shù)(圖片路徑、語言、引擎路徑、輸出路徑),其中 --image 是必選參數(shù),其他為可選參數(shù),降低用戶使用門檻。
  • 流程控制:按“讀取圖片 → 預(yù)處理 → 識別 → 打印結(jié)果 → 保存結(jié)果”的流程執(zhí)行,并通過 try-except 捕獲異常(如文件不存在、語言包缺失),提升程序穩(wěn)定性。

五、工具使用教程(實戰(zhàn)演示)

我們以 Windows 系統(tǒng)為例,通過 3 個場景演示工具的使用(其他系統(tǒng)操作類似,僅路徑格式不同)。

5.1 準(zhǔn)備測試圖片

首先準(zhǔn)備 2 張測試圖片(建議放在與 simple_ocr_tool.py 同一目錄下):

  1. english_test.png:英文截圖(如一段英文文檔)。
  2. chinese_test.png:中文截圖(如一段中文新聞)。

5.2 場景 1:識別英文圖片

打開終端/命令行,切換到腳本所在目錄,執(zhí)行以下命令:

# 識別英文圖片,默認輸出到 ocr_result.txt
python simple_ocr_tool.py -i english_test.png -l eng

執(zhí)行流程與輸出:

  1. 程序會依次打印“灰度化 → 二值化 → 降噪”完成提示。
  2. 輸出識別結(jié)果(在終端顯示)。
  3. 保存結(jié)果到當(dāng)前目錄的 ocr_result.txt,并顯示文件絕對路徑。

5.3 場景 2:識別中文圖片

若需識別中文,需確保已安裝中文語言包(安裝 Tesseract 時勾選了語言包),執(zhí)行命令:

# 識別中文圖片,輸出到 chinese_result.txt
python simple_ocr_tool.py -i chinese_test.png -l chi_sim -o chinese_result.txt

注意:

  • 語言參數(shù) lang 必須為 chi_sim(簡體中文)或 chi_tra(繁體中文),不可寫錯。
  • 若提示“語言包缺失”,需重新安裝 Tesseract 并勾選中文語言包(Windows)或執(zhí)行 brew install tesseract-lang(macOS)。

5.4 場景 3:Windows 未配置環(huán)境變量時使用(補充完整)

若未配置 Tesseract 環(huán)境變量,程序無法自動找到引擎路徑,需通過 --tesseract-cmd(或簡寫 -t)參數(shù)手動指定 Tesseract 可執(zhí)行文件的完整路徑,避免出現(xiàn)“tesseract is not installed or it’s not in your PATH”錯誤。

以識別中英文混合圖片 mix_test.png 為例,完整命令如下(需替換為你的實際安裝路徑):

# Windows 系統(tǒng)命令(路徑含空格需用英文引號包裹)
python simple_ocr_tool.py -i mix_test.png -l chi_sim+eng -t "C:\Program Files\Tesseract-OCR\tesseract.exe" -o mix_result.txt
  • 參數(shù)說明
    • -t "C:\Program Files\Tesseract-OCR\tesseract.exe":明確指定 Tesseract 引擎的 tesseract.exe 文件路徑,路徑中的英文引號用于處理“Program Files”中的空格(若路徑無空格可省略引號,如 D:\Tesseract-OCR\tesseract.exe)。
    • -l chi_sim+eng:語言參數(shù)設(shè)為“簡體中文+英文”,支持同時識別圖片中的中英文內(nèi)容(語言包需同時安裝 chi_sim.traineddataeng.traineddata)。
    • -o mix_result.txt:將識別結(jié)果保存到 mix_result.txt,避免覆蓋默認的 ocr_result.txt。

執(zhí)行命令后,程序會按“圖片讀取→預(yù)處理→OCR識別→結(jié)果保存”流程運行,終端會打印各步驟進度(如“? 圖片降噪完成”“? OCR 識別完成(語言:chi_sim+eng)”),最終在指定路徑生成結(jié)果文件。

六、常見問題與優(yōu)化方向

6.1 識別準(zhǔn)確率低?試試這些優(yōu)化

若識別結(jié)果存在較多錯字、漏字,可從以下角度優(yōu)化:

  1. 增強圖片預(yù)處理
    • 若圖片傾斜,添加“傾斜矯正”步驟(使用 cv2.minAreaRect() 計算傾斜角度,cv2.warpAffine() 實現(xiàn)旋轉(zhuǎn))。
    • 若文字較細或有斷裂,使用“形態(tài)學(xué)膨脹”(cv2.dilate())增強文字輪廓。
  2. 調(diào)整 Tesseract 配置參數(shù)
    • 修改 custom_config 中的 --psm 參數(shù)(頁面分割模式),例如:
      • --psm 11:適合文字分布不規(guī)則的圖片(如截圖中的散字)。
      • --psm 3:默認模式,適合多列文本的文檔(如PDF掃描件)。
    • 添加降噪?yún)?shù):--oem 3 --psm 6 -c tessedit_char_whitelist=0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ中文,限定識別字符范圍(減少無關(guān)字符干擾)。
  3. 提升圖片質(zhì)量
    • 確保圖片分辨率不低于 300 DPI(掃描件優(yōu)先選擇“高清模式”)。
    • 避免圖片有模糊、陰影或反光(拍攝時盡量平整、光線均勻)。

6.2 擴展功能:支持批量識別圖片

若需要批量處理多個圖片,可在代碼中添加“遍歷文件夾”功能,修改 main 函數(shù)中的圖片讀取邏輯:

# 批量識別指定文件夾下的所有圖片(示例:支持 png/jpg/jpeg 格式)
def batch_ocr(folder_path, lang='chi_sim', output_dir='ocr_batch_results'):
    # 創(chuàng)建輸出文件夾
    os.makedirs(output_dir, exist_ok=True)
    # 遍歷文件夾中的圖片
    for filename in os.listdir(folder_path):
        if filename.lower().endswith(('.png', '.jpg', '.jpeg')):
            image_path = os.path.join(folder_path, filename)
            print(f"\n?? 正在處理圖片:{filename}")
            try:
                # 預(yù)處理 + 識別
                preprocessed_img = image_preprocessing(image_path)
                recognized_text = ocr_recognize(preprocessed_img, lang=lang)
                # 保存結(jié)果(以圖片名命名結(jié)果文件)
                output_path = os.path.join(output_dir, f"{os.path.splitext(filename)[0]}.txt")
                save_result(recognized_text, output_path)
            except Exception as e:
                print(f"? 處理 {filename} 失?。簕str(e)}")

使用時只需在 main 函數(shù)中調(diào)用 batch_ocr(r'C:\your_image_folder'),即可批量處理文件夾下所有圖片并生成對應(yīng)結(jié)果文件。

6.3 打包為可執(zhí)行文件(方便非編程用戶使用)

若需將工具分享給不懂Python的用戶,可使用 pyinstaller 打包為 .exe 文件(Windows):

  1. 安裝打包工具:pip install pyinstaller
  2. 執(zhí)行打包命令(在腳本所在目錄):
pyinstaller -F -i ocr_icon.ico simple_ocr_tool.py
  • -F:打包為單個可執(zhí)行文件(方便攜帶)。
  • -i ocr_icon.ico:可選參數(shù),為.exe文件添加圖標(biāo)(需提前準(zhǔn)備.ico格式圖標(biāo)文件)。
  1. 打包完成后,可執(zhí)行文件會生成在 dist 文件夾中,用戶雙擊運行后,通過命令行參數(shù)即可使用(操作同之前的命令)。

七、總結(jié)

本文從零開始構(gòu)建了一個基于 pytesseract 的簡易 OCR 工具,核心亮點包括:

  1. 實用性:支持中英文識別、結(jié)果保存,解決日常圖片文字提取需求。
  2. 可擴展性:代碼模塊化設(shè)計,可輕松添加批量識別、傾斜矯正、GUI界面(如用 tkinterPyQt)等功能。
  3. 問題導(dǎo)向:針對環(huán)境配置、路徑錯誤、語言包缺失等常見問題提供了詳細解決方案,降低使用門檻。

通過本實戰(zhàn),不僅能掌握 OCR 工具的開發(fā)流程,還能理解圖片預(yù)處理對識別準(zhǔn)確率的影響,為后續(xù)更復(fù)雜的計算機視覺任務(wù)(如表格識別、驗證碼識別)打下基礎(chǔ)。

以上就是使用Python的pytesseract庫開發(fā)簡易OCR圖片文字識別工具的詳細內(nèi)容,更多關(guān)于Python OCR圖片文字識別的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評論

叶城县| 嵊州市| 西宁市| 临高县| 鹿泉市| 海盐县| 桐乡市| 抚远县| 卢湾区| 长子县| 鹿泉市| 织金县| 东安县| 阜宁县| 肃宁县| 莎车县| 阳朔县| 平罗县| 宁强县| 南华县| 渭南市| 远安县| 宜黄县| 安国市| 荔浦县| 襄垣县| 全南县| 阿图什市| 探索| 双峰县| 浙江省| 韩城市| 苏州市| 孟州市| 安康市| 祁东县| 北宁市| 合作市| 全州县| 丹棱县| 丁青县|