[Python]使用NumPy 進行影像黑白反轉

閱讀時間約 2 分鐘


在某些特殊情況下,需要將圖片進行黑白反轉,例如Tesseract(OCR辨識引擎)就有建議黑底白字的狀況下辨識率較高。

本文將使用 NumPy 進行黑白影像反轉,並顯示反轉前後的影像。


成果顯示

圖片黑白反轉

圖片黑白反轉


程式碼範例

import cv2
import numpy as np

# 讀取影像(灰階模式)
image = cv2.imread('image.jpg', cv2.IMREAD_GRAYSCALE)

# 黑白反轉
inverted_image = 255 - image

# 顯示原影像和反轉後的影像
cv2.imshow('Original Image', image)
cv2.imshow('Inverted Image', inverted_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

詳細說明

  1. 讀取影像
    image = cv2.imread('image.jpg', cv2.IMREAD_GRAYSCALE)
    使用 OpenCV 的 cv2.imread 函數以灰階模式讀取影像。
    圖像在使用 OpenCV 讀取後會被存儲為一個 NumPy 陣列。每個陣列元素對應於圖像的一個像素值。
  2. 黑白反轉
    inverted_image = 255 - image
    使用 NumPy 對影像進行逐元素操作,將每個像素值變為其相對應的反轉值。如果原像素值是 255(白色),反轉後會變成 0(黑色)。
    當你執行 inverted_image = 255 - image 時,這是一個針對整個 NumPy 陣列的向量化操作。NumPy 會對陣列中的每個元素進行減法操作
  3. 顯示影像
    cv2.imshow('Original Image', image)
    cv2.imshow('Inverted Image', inverted_image)
    cv2.waitKey(0)
    cv2.destroyAllWindows()
    使用 OpenCV 的 cv2.imshow 函數顯示原影像和反轉後的影像。


這樣處理後,無論原本的像素是什麼顏色,都會被準確地反轉。白色像素(255)變成黑色(0),黑色像素(0)變成白色(255),其他灰階值會相應變換。

113會員
172Content count
本業是影像辨識軟體開發,閒暇時間進修AI相關內容,將學習到的內容寫成文章分享。
留言0
查看全部
發表第一個留言支持創作者!
螃蟹_crab的沙龍 的其他內容
在影像辨識中,若遇到物件與背景難以分辨的狀況下,先做一下色彩分析,知道了色彩強度階層上的像素數,有助於了解後續需要做什麼處理,比較好分割出辨識物。 若想辨識的物件與背景的RGB值過於接近,也比較好說明此狀況,為什麼較難分割出物件。 成果呈現 第一張圖:左邊為原圖,右邊為分析結果的圖,用其他顏
接續上一邊,分割了螺絲與螺母的圖像,但分割後的結果,因為螺絲過於接近的關係,沒有切割乾淨,會有其他螺絲的頭或者身體,這樣會影響到後續量測。 [OpenCV應用][Python]擷取出螺絲或螺母的影像 本文主要是,如何去除掉不要的背景雜物。 下層為原先分割的圖,上層為去除背景雜物的圖。
此篇為上一篇文章的延伸,先辦別是螺絲還是螺母才擷取出影像。 [OpenCV應用][Python]利用findContours辨識螺絲還是螺母 因為可能會需要另外處理螺絲與螺母才可以準確地去做量測,所以第一步就是先分割出這兩種的圖像。
先上成果圖,如果是螺母的話就標註 is circle來區分。 簡單的用圖表加文字說明AOI辨識 在此文章的範例中: 影像前處理:色彩空間轉換(灰階) -> 二值化閥值處理 演算法:尋找輪廓 數值判斷:長,寬,面積,周長 圖片來源 程式碼 import cv2 import nu
常見的圖像銳利化方法: 銳化濾波器 增強對比度 Unsharp Masking
色差檢測在許多應用中非常重要,如印刷、織物、塗料等。色差的測量通常使用 CIEDE2000 色差公式來計算兩個顏色之間的差異。 本文將檢測以下織物圖,分析出兩者的色差 程式範例 流程: 先利用K-Means分群的方式,分割出主要顏色,在用delta_e_cie2000來檢測色差 主要安裝
在影像辨識中,若遇到物件與背景難以分辨的狀況下,先做一下色彩分析,知道了色彩強度階層上的像素數,有助於了解後續需要做什麼處理,比較好分割出辨識物。 若想辨識的物件與背景的RGB值過於接近,也比較好說明此狀況,為什麼較難分割出物件。 成果呈現 第一張圖:左邊為原圖,右邊為分析結果的圖,用其他顏
接續上一邊,分割了螺絲與螺母的圖像,但分割後的結果,因為螺絲過於接近的關係,沒有切割乾淨,會有其他螺絲的頭或者身體,這樣會影響到後續量測。 [OpenCV應用][Python]擷取出螺絲或螺母的影像 本文主要是,如何去除掉不要的背景雜物。 下層為原先分割的圖,上層為去除背景雜物的圖。
此篇為上一篇文章的延伸,先辦別是螺絲還是螺母才擷取出影像。 [OpenCV應用][Python]利用findContours辨識螺絲還是螺母 因為可能會需要另外處理螺絲與螺母才可以準確地去做量測,所以第一步就是先分割出這兩種的圖像。
先上成果圖,如果是螺母的話就標註 is circle來區分。 簡單的用圖表加文字說明AOI辨識 在此文章的範例中: 影像前處理:色彩空間轉換(灰階) -> 二值化閥值處理 演算法:尋找輪廓 數值判斷:長,寬,面積,周長 圖片來源 程式碼 import cv2 import nu
常見的圖像銳利化方法: 銳化濾波器 增強對比度 Unsharp Masking
色差檢測在許多應用中非常重要,如印刷、織物、塗料等。色差的測量通常使用 CIEDE2000 色差公式來計算兩個顏色之間的差異。 本文將檢測以下織物圖,分析出兩者的色差 程式範例 流程: 先利用K-Means分群的方式,分割出主要顏色,在用delta_e_cie2000來檢測色差 主要安裝
你可能也想看
Thumbnail
重點摘要: 1.9 月降息 2 碼、進一步暗示年內還有 50 bp 降息 2.SEP 上修失業率預期,但快速的降息速率將有助失業率觸頂 3.未來幾個月經濟數據將繼續轉弱,經濟復甦的時點或是 1Q25 季底附近
Thumbnail
近期的「貼文發佈流程 & 版型大更新」功能大家使用了嗎? 新版式整體視覺上「更加凸顯圖片」,為了搭配這次的更新,我們推出首次貼文策展 ❤️ 使用貼文功能並完成這次的指定任務,還有機會獲得富士即可拍,讓你的美好回憶都可以用即可拍珍藏!
Thumbnail
PyInstaller 是一個強大的工具,可以將 Python 程式碼打包成獨立的可執行檔案,讓你的程式可以在沒有 Python 解釋器的情況下運行。這對於分享和分發你的 Python 應用程式非常有用。以下是使用 PyInstaller 的基本步驟:
使用Python的Threading模組設計一個能夠在背景待命的程式,並在等待5秒後自動結束。我們將使用執行緒來執行背景任務,並使用定時等待來控制程式的結束時間。這種方法適用於不依賴於特定按鍵事件的情況,而是在固定的時間後自動退出程式。
在這篇教學中,我們將介紹如何使用Python的openpyxl套件將資料寫入Excel文件。openpyxl是一個功能強大的函式庫,可以讓我們輕鬆地處理Excel文件。
在這篇教學中,我們將介紹如何使用Python的openpyxl模組來讀取Excel文件中的資料。openpyxl是一個功能強大的函式庫,可以讓我們輕鬆地處理Excel文件。
安裝 pyautogui 在開始之前,我們需要先安裝 pyautogui 模塊。
這篇教學文章將介紹如何使用 OpenAI 的 GPT-3 模型來建立一個簡單的聊天機器人。
安裝 pyautogui 在開始之前,我們需要先安裝 pyautogui 模塊。你可以在終端或命令提示字元中輸入以下命令來安裝它: 1.移動滑鼠 2.模擬滑鼠點擊 3.模擬滑鼠拖曳 4.捲動滑鼠
使用 pyautogui 套件來取得所有正在視窗 (windows)。
Thumbnail
初玩python時常用pip安裝各式各樣的套件下來,而這些套件在本機中是以全域的方式安裝。假設今天需要接手別人的專案,所用的套件版本不相容,對於這些仰賴的套件(依賴dependencies)進行管理跟切分就成了一個課題。
Thumbnail
在Python中使用MySQLdb的起手式大概長這樣。記得execute裡面的SQL語法一定要加上冒號,否則會出錯。我也在這個愚蠢的錯誤上跌倒過。編碼問題是資料庫管理中常見的問題,編碼包含又包含了兩個部份,collation和character set。
Thumbnail
重點摘要: 1.9 月降息 2 碼、進一步暗示年內還有 50 bp 降息 2.SEP 上修失業率預期,但快速的降息速率將有助失業率觸頂 3.未來幾個月經濟數據將繼續轉弱,經濟復甦的時點或是 1Q25 季底附近
Thumbnail
近期的「貼文發佈流程 & 版型大更新」功能大家使用了嗎? 新版式整體視覺上「更加凸顯圖片」,為了搭配這次的更新,我們推出首次貼文策展 ❤️ 使用貼文功能並完成這次的指定任務,還有機會獲得富士即可拍,讓你的美好回憶都可以用即可拍珍藏!
Thumbnail
PyInstaller 是一個強大的工具,可以將 Python 程式碼打包成獨立的可執行檔案,讓你的程式可以在沒有 Python 解釋器的情況下運行。這對於分享和分發你的 Python 應用程式非常有用。以下是使用 PyInstaller 的基本步驟:
使用Python的Threading模組設計一個能夠在背景待命的程式,並在等待5秒後自動結束。我們將使用執行緒來執行背景任務,並使用定時等待來控制程式的結束時間。這種方法適用於不依賴於特定按鍵事件的情況,而是在固定的時間後自動退出程式。
在這篇教學中,我們將介紹如何使用Python的openpyxl套件將資料寫入Excel文件。openpyxl是一個功能強大的函式庫,可以讓我們輕鬆地處理Excel文件。
在這篇教學中,我們將介紹如何使用Python的openpyxl模組來讀取Excel文件中的資料。openpyxl是一個功能強大的函式庫,可以讓我們輕鬆地處理Excel文件。
安裝 pyautogui 在開始之前,我們需要先安裝 pyautogui 模塊。
這篇教學文章將介紹如何使用 OpenAI 的 GPT-3 模型來建立一個簡單的聊天機器人。
安裝 pyautogui 在開始之前,我們需要先安裝 pyautogui 模塊。你可以在終端或命令提示字元中輸入以下命令來安裝它: 1.移動滑鼠 2.模擬滑鼠點擊 3.模擬滑鼠拖曳 4.捲動滑鼠
使用 pyautogui 套件來取得所有正在視窗 (windows)。
Thumbnail
初玩python時常用pip安裝各式各樣的套件下來,而這些套件在本機中是以全域的方式安裝。假設今天需要接手別人的專案,所用的套件版本不相容,對於這些仰賴的套件(依賴dependencies)進行管理跟切分就成了一個課題。
Thumbnail
在Python中使用MySQLdb的起手式大概長這樣。記得execute裡面的SQL語法一定要加上冒號,否則會出錯。我也在這個愚蠢的錯誤上跌倒過。編碼問題是資料庫管理中常見的問題,編碼包含又包含了兩個部份,collation和character set。