<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
畫素是計算機視覺中影象的重要屬性。它們是表示影象中特定空間中光的顏色強度的數值,是影象中資料的最小單位。
影象中的畫素總數是高度、寬度和通道的乘積。
由於OpenCV中的影象被讀取為畫素值的Numpy陣列,因此可以使用陣列切片操作獲取並處理由該區域的畫素表示的影象區域。
切片操作用於檢索序列子集,如列表、元組和陣列,因此可用於獲取影象區域的畫素值,以便進行編輯、格式化或裁剪等處理。
指令碼:使用切片操作獲取列表的子集。
# 切片字母列表 letters = ['a', 'b', 'c', 'd', 'e'] # 頭三個字母 first_three = letters[:3] # 最後三個字母 last_three = letters[-3:] # 得到第二個到第四個字母 second_to_fourth = letters[1:4] # 顯示結果 print('First three letters: ', first_three) print('Last three letters: ', last_three) print('Second to fourth letters: ', second_to_fourth)
請注意,我使用索引值對字母列表進行切片。例如,傳遞起始索引1(列表中第二個字母的索引)和4將返回列表的一個片段,從第二個值到第四個值。
由於索引值用於以這種方式檢索子集,因此它們也用於定位和檢索影象中感興趣的區域。
以影象中的區域為目標的切片由影象的兩個軸(水平(X)和垂直(Y))的起始值和結束值定義,格式如下:
image[startY: endY, startx:endX]
它返回所需感興趣區域的(影象畫素的)Numpy陣列。
那麼,我們如何確定感興趣區域的X軸和Y軸的起始值和結束值?
這些值(startX、endX、startY、endY)是對映出感興趣區域的座標值。
使用OpenCV顯示時,這些值不會顯示在影象旁邊,但我們可以使用其他應用程式(如Photoshop、Corel Draw、Paint e.t.c)或其他python視覺化庫(如Matplotlib)來顯示具有X和Y座標值的影象。
一如既往,這在實踐中得到了更好的理解。讓我們使用matplotlib顯示一個影象。pyplot,我們可以從中檢索座標,這些座標對映出影象中的目標感興趣區域。
我用迦納共和國國旗的影象來證明這一點。在這裡,我的目標是影象中圍繞黑星的區域。
使用Matplotlib載入並顯示影象
# 匯入matplotlib的plot import matplotlib.pyplot as plt # 載入和顯示原始影象 image = plt.imread('Flag_of_Ghana.png') # 顯示圖片 plt.imshow("Original", image) plt.plot()
輸出:載入的影象及其X和Y座標。
正如你所看到的,plt.imshow函數返回讀取的影象以及x和y軸的座標值。
然後,我們可以檢索感興趣區域(黑星)的起始和結束座標值。
追蹤黑星區域的座標值
這幅影象顯示瞭如何追蹤黑星周圍區域的座標。
我們可以從影象中檢索座標(startY(y1)、endY(y2)、startX(x1)、endX(x2))。然後,我們可以定義兩個軸的起點和終點座標,並裁剪為:
image[y1: y2, x1:x2]
if we get y1, y2 = [145, 295] and x1, x2 = [245, 400]
那麼繪製出黑星的區域將是:
black_star = image[145:295, 245:400]
這將返回對映感興趣區域(本例中為黑星)的畫素值(在Numpy陣列中)。
現在,我們可以利用這種技術對影象區域進行定位和切片,以進行各種影象處理。
# 匯入matplotlib的plot import matplotlib.pyplot as plt # 載入和顯示原始影象 image = plt.imread('Flag_of_Ghana.png') # 顯示圖片 plt.imshow("Original", image) plt.plot()
輸出:顯示載入的影象。
# 獲取影象的空間尺寸 # 初始化 originY, originX = 0, 0 # 獲取影象的高度和寬度 height, width = image.shape[:2] # 計算影象的中心 (centerX, centerY) = (width // 2, height // 2) print('Image height: ', height) print('Image width: ', width) print('Center location: ', (centerY, centerX))
輸出:顯示影象的空間尺寸。
裁剪出影象的左上角
# 裁剪影象的左上角 # 高度從原點到中心 # 寬度從原點到中心 top_left = image[originY:centerY, originX:centerX] cv2.imshow("Top-Left Corner", top_left) cv2.waitKey(0)
輸出:影象的左上角
裁剪出影象的右上角
# 裁剪右上角 # 高度從原點到中心 # 寬度從中心到右上角(寬度) top_right = image[originY:centerY, centerX:width] cv2.imshow("Top-Right Corner", top_right) cv2.waitKey(0)
輸出:影象的右上角
裁剪出影象的左下角
# 裁剪左下角 # 高度從中心到左下角(高度) # 寬度從中心到右上角(寬度) bottom_left = image[centerY:height, originX:centerX] cv2.imshow("Bottom-Left Corner", bottom_left) cv2.waitKey(0)
輸出:影象的左下角
裁剪出影象的右下角
# 裁剪右下角 # 高度從中心到左下角(高度) # 寬度從中心到右上角(寬度) bottom_right = image[centerY:height, centerX:width] cv2.imshow("Bottom-Right Corner", bottom_right) cv2.waitKey(0)
輸出:左下角。
# 設定原始影象的左上角為綠色 image[originY:centerY, originX:centerX] = (0, 255, 0) # 顯示更新後的影象 cv2.imshow("Updated", image) cv2.waitKey(0)
輸出:將左上角設定為綠色
影象畫素是表示影象中顏色強度的數值。使用OpenCV獲取和設定不同影象處理的影象畫素的過程基於Numpy陣列的切片操作。切片畫素值在裁剪、重置、複製或增強影象時非常有用。
以上就是詳解在OpenCV中如何使用影象畫素的詳細內容,更多關於OpenCV影象畫素的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45