python+opencv實(shí)現(xiàn)論文插圖局部放大并拼接效果
前言
在制作論文插圖時(shí),有時(shí)要求將圖片的局部放大來(lái)展示細(xì)節(jié)內(nèi)容,同時(shí)將放大圖拼接在原圖上以方便觀察對(duì)比。
當(dāng)然直接利用電腦自帶的畫圖軟件或者別的軟件也可以很方便地實(shí)現(xiàn),但是如果碰到多個(gè)算法處理一張圖片后多張圖片進(jìn)行對(duì)比就不太方便了,這里主要貼一下 python 代碼的實(shí)現(xiàn)。
cv2.rectangle() 函數(shù)
cv2.rectangle(img, pt1, pt2, color, thickness )
功能是在圖片上畫一個(gè)矩形框,沒(méi)有返回值。
參數(shù)列表:
img:圖片
pt1:長(zhǎng)方形框左上角坐標(biāo)
pt2:長(zhǎng)方形框右下角坐標(biāo)
color:字體顏色
thickness:字體粗細(xì)
示例
import cv2 image = cv2.imread('F://test.png') pt1 = (10, 190) # 長(zhǎng)方形框左上角坐標(biāo) pt2 = (160, 270) # 長(zhǎng)方形框右下角坐標(biāo) cv2.rectangle(image, pt1, pt2, (255, 0, 0), 5) cv2.imshow('demo', image)
cv2.resize() 函數(shù)
cv2.resize(src, dsize)
功能是將圖片縮放為指定大小,返回值是改變后的圖片。
參數(shù)列表:
src: 輸入圖片
dsize:輸出圖片的尺寸
示例
import cv2 image = cv2.imread('F://test.png') h, w = image.shape[0:2] print(f'原來(lái)圖片的大?。簕w}×{h}') image = cv2.resize(image, (150, 300)) h, w = image.shape[0:2] print(f'縮小后圖片的大小:{w}×{h}')
np.hstack() 和 np.vstack() 函數(shù)
np.hstack((img1, img2, ···))
和 np.vstack((img1, img2·, ···))
。np.hstack()
和 np.vstack()
是 numpy 提供的兩個(gè)矩陣拼接函數(shù),顧名思義 np.hstack()
是水平方向拼接,np.vstack()
是垂直方向拼接。
參數(shù)列表:
img1:第一個(gè)圖片
img2:第二個(gè)圖片
imgn:第 n 個(gè)圖片
要求:輸入圖片的行數(shù)或者列數(shù)相同
示例
import cv2 import numpy as np image1 = cv2.imread('F://test.png') image2 = cv2.resize(image1, (150, 300)) image3 = cv2.resize(image1, (550, 410)) image = np.hstack((image1, image2)) image = np.vstack((image, image3)) cv2.imshow('demo', image)
實(shí)現(xiàn)局部框定放大拼接
import cv2 import numpy as np image = cv2.imread('F://test.png') # 第一個(gè)局部放大圖 pt1 = (150, 70) # 長(zhǎng)方形框左上角坐標(biāo) pt2 = (250, 130) # 長(zhǎng)方形框右下角坐標(biāo) cv2.rectangle(image, pt1, pt2, (0, 0, 255), 2) patch1 = image[70:130, 150:250, :] patch1 = cv2.resize(patch1, (200, 120)) # 第二個(gè)局部放大圖 pt1 = (265, 70) # 長(zhǎng)方形框左上角坐標(biāo) pt2 = (365, 130) # 長(zhǎng)方形框右下角坐標(biāo) cv2.rectangle(image, pt1, pt2, (0, 255, 0), 2) patch2 = image[70:130, 265:365, :] patch2 = cv2.resize(patch2, (200, 120)) # 拼接 patch = np.hstack((patch1, patch2)) image = np.vstack((image, patch)) cv2.imshow('demo', image) cv2.imwrite('F://test_result.png', image)
總結(jié)
到此這篇關(guān)于python+opencv實(shí)現(xiàn)論文插圖局部放大并拼接效果的文章就介紹到這了,更多相關(guān)python+opencv插圖局部放大并拼接內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python實(shí)現(xiàn)將html表格轉(zhuǎn)換成CSV文件的方法
這篇文章主要介紹了python實(shí)現(xiàn)將html表格轉(zhuǎn)換成CSV文件的方法,涉及Python操作csv文件的相關(guān)技巧,需要的朋友可以參考下2015-06-06pyecharts如何使用formatter回調(diào)函數(shù)的問(wèn)題
這篇文章主要介紹了pyecharts如何使用formatter回調(diào)函數(shù)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08python實(shí)現(xiàn)Oracle查詢分組的方法示例
這篇文章主要介紹了python實(shí)現(xiàn)Oracle查詢分組的方法,結(jié)合實(shí)例形式分析了python使用group by子句及having子句實(shí)現(xiàn)Oracle查詢分組的相關(guān)操作技巧,需要的朋友可以參考下2020-04-04Python異步爬蟲requests和aiohttp中代理IP的使用
本文主要介紹了Python異步爬蟲requests和aiohttp中代理IP的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03django實(shí)現(xiàn)模板中的字符串文字和自動(dòng)轉(zhuǎn)義
這篇文章主要介紹了django實(shí)現(xiàn)模板中的字符串文字和自動(dòng)轉(zhuǎn)義,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-03-03