1. 程式人生 > >OpenCV新增中文(五)

OpenCV新增中文(五)

OpenCV新增文字的方法putText(...),新增英文是沒有問題的,但如果你要新增中文就會出現“???”的亂碼,需要特殊處理一下。

下文提供封裝好的(程式碼)方法,供OpenCV新增中文使用。

效果預覽

實現思路

使用PIL的圖片繪製新增中文,可以指定字型檔案,那麼也就是說使用PIL可以實現中文的輸出。

有思路之後,接下來的工作就簡單了。

  1. OpenCV圖片格式轉換成PIL的圖片格式;
  2. 使用PIL繪製文字;
  3. PIL圖片格式轉換成OpenCV的圖片格式;

程式碼分解

OpenCV圖片轉換為PIL圖片格式

img = Image.fromarray(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))

使用PIL繪製文字

draw = ImageDraw.Draw(img)
fontText = ImageFont.truetype("font/simsun.ttc", textSize, encoding="utf-8")
draw.text((left, top), "文字內容", textColor, font=fontText)

字型檔案為:simsun.ttc,Windows可以在C:\Windows\Fonts下面查詢。

PIL圖片格式轉換成OpenCV的圖片格式

cv2.cvtColor(numpy.asarray(img), cv2.COLOR_RGB2BGR)

完整程式碼

封裝好的完整方法

#coding=utf-8
#中文亂碼處理

import cv2
import numpy
from PIL import Image, ImageDraw, ImageFont

def cv2ImgAddText(img, text, left, top, textColor=(0, 255, 0), textSize=20):
    if (isinstance(img, numpy.ndarray)):  #判斷是否OpenCV圖片型別
        img = Image.fromarray(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
    draw = ImageDraw.Draw(img)
    fontText = ImageFont.truetype(
        "font/simsun.ttc", textSize, encoding="utf-8")
    draw.text((left, top), text, textColor, font=fontText)
    return cv2.cvtColor(numpy.asarray(img), cv2.COLOR_RGB2BGR)

程式碼呼叫

img = cv2ImgAddText(img, "大家好,我是星爺", 140, 60, (255, 255, 0), 20)

相關推薦

OpenCV新增中文

OpenCV新增文字的方法putText(...),新增英文是沒有問題的,但如果你要新增中文就會出現“???”的亂碼,需要特殊處理一下。 下文提供封裝好的(程式碼)方法,供OpenCV新增中文使用。 效果預覽 實現思路 使用PIL的圖片繪製新增中文,可以指

OpenCV添加中文——

格式 實現思路 asa pst odin www. raw 圖片格式 類型 OpenCV添加文字的方法putText(...),添加英文是沒有問題的,但如果你要添加中文就會出現“???”的亂碼,需要特殊處理一下。 下文提供封裝好的(代碼)方法,供OpenCV添加中文使用。

Python + OpenCV 學習筆記>>> 畫素運算

1. 算數運算 注意:兩幅影象的畫素大小要一致 進行影象畫素之間的算術運算,首先要匯入影象,讀取其中資訊: m1 = cv.imread("/home/pi/Desktop/m1.jpg") m2 = cv.imread("/home/pi/Desktop/m2.jpg")

OpenCV(C++) 基礎-- 影象變換重對映/仿射/直方圖均衡化

1.重對映:翻轉 void remap(src, dst, map1, map2, interpolation, mode=BORDER_CONSTANT, Scalar&borderVal=Scalar()); // map1 / map2: x / y 方向的對

OpenCv學習筆記-數學形態學2灰度級膨脹和腐蝕及c語言實現

一 基本概念 所謂的灰度級膨脹和腐蝕即將而知影象的二值形態學運算推廣到灰度影象上。對於一幅影象的腐蝕(膨脹)運算定義為對每個畫素賦值為某個領域內輸入影象灰度級的最小(或最大值)。在二值變換中的結構元素只代表一個領域,而在灰度級變化中,結構元素是一個二元函式,它規定了希

OpenCV學習筆記:計算影象直方圖

畫素值在影象中的分佈情況是這幅影象的一個重要特徵。直方圖是一個簡單的表,它給出了衣服影象或一組影象中擁有給定數值的畫素數量。在OpenCV中計算直方圖可以通過使用cv::clacHist()函式。這是一

Python下opencv使用筆記影象的平滑與濾波

對於圖形的平滑與濾波,但從濾波角度來講,一般主要的目的都是為了實現對影象噪聲的消除,增強影象的效果。 首先介紹二維卷積運算,影象的濾波可以看成是濾波模板與原始影象對應部分的的卷積運算。關於卷積運算,找到幾篇相關的部落格: 對於2D影象可以進行低通或者高通

openCV學習筆記 —— 函式執行時間

所用函式 getTickCount():這個函式返回特定事件後的節拍數(例如,當機器開啟時)。它可以用來初始化RNG或通過讀取函式呼叫前後的滴答計數來測量一個函式執行時間。 getTickFrequency():返回CPU一秒中所走的時鐘週期數。所以可以以秒為單位對某運算時

視訊、圖形影象處理之Opencv技術記錄Opencv教程之影象處理imgproc模組之平滑影象

目標 在本教程中,您將學習如何使用OpenCV函式應用各種線性濾鏡來平滑影象,例如: 理論 注意 下面的解釋屬於Richard Szeliski和LearningOpenCV的計算機視覺:演算法和應用一書 平滑,也稱為模糊,是一種簡單且經常使用的影象處理操作。

python+OpenCV影象處理影象的閾值分割

影象的閾值處理      一幅影象包括目標物體、背景還有噪聲,要想從多值的數字影象中直接提取出目標物體,常用的方法就是設定一個閾值T,用T將影象的資料分成兩部分:大於T的畫素群和小於T的畫素群。這是研究灰度變換的最特殊的方法,稱為影象的二值化(Binarization)。 

Opencv學習筆記Harris角點檢測

文章目錄: 一、Harris角點檢測基本理論 二、opencv程式碼實現 三、改進的Harris角點檢測 四、FAST角點檢測 五、參考文獻 六、附錄(資料和原始碼) 一、Harris角點檢測基本理論(要講清楚東西太多,附錄提供文件詳細說明) 1.1 簡略表達:

Lucene——中文分詞器

實現 ext cse ron -a tag 大小 -c .com 1. 什麽是中文分詞器 對於英文,是安裝空格、標點符號進行分詞 對於中文,應該安裝具體的詞來分,中文分詞就是將詞,切分成一個個有意義的詞。 比如:“我的中國人”,分詞:我、的、中

Python+OpenCV圖像處理—— ROI與泛洪填充

targe ros com ray inter color 方式 高度 lan 一、ROI ROI(region of interest),感興趣區域。機器視覺、圖像處理中,從被處理的圖像以方框、圓、橢圓、不規則多邊形等方式勾勒出需要處理的區域,稱為感興趣區域,ROI。

talib 中文文檔:文檔導航

pan doc 價格 transform 循環 ola mom com 文檔 Documentation 安裝和問題 快速使用 高級應用 方法分類 Overlap Studies 重疊的研究 Momentum Indicators 動

OpenCV學習筆記31KAZE 演算法原理與原始碼分析KAZE的原始碼優化及與SIFT的比較

  KAZE系列筆記: 1.  OpenCV學習筆記(27)KAZE 演算法原理與原始碼分析(一)非線性擴散濾波 2.  OpenCV學習筆記(28)KAZE 演算法原理與原始碼分析(二)非線性尺度空間構建 3.  Op

資料新增非同步解析重新整理大資料量redis ——redisutils

首先要在配置檔案注入這個bean     這也是我非同步重新整理獲取bean用的redisutils工具類: import javax.servlet.ServletContext; import javax.servlet.http.HttpServl

python+opencv+PIL,在圖片和視訊中寫入中文漢字

原部落格地址:https://blog.csdn.net/wyx100/article/details/80412101 效果 程式碼  #!/usr/bin/env python # -*- coding: utf-8 -*- from PIL import Ima

android影象處理系列之--給圖片新增邊框

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

高德地圖之新增groundoverlay覆蓋物

本節主要實現的功能是往地圖上新增一個groundoverlay覆蓋物,用此方式可以實現公園電子導遊,下面先來看一張效果圖吧: 接下來我們還是直接上程式碼: 新建佈局檔案activity_groundoverlay.xml <?xml version="1.0" encod

微信開發學習總結——素材管理1—獲取臨時素材和新增永久素材

這裡需要說一下圖片,語音,視訊的回覆訊息構造,這三種訊息構造時的都需要一個mediaId,而這個mediaId是通過素材管理介面上傳多媒體檔案得到的,為了構造圖片,語音,視訊的這幾種回覆訊息,我事先準備好了測試素材,如下圖所示: 客服介面圖文推送上傳圖片 在傳送圖文訊息時,我們需要新