【看论文学技能之图像局部放大图】
图像局部放大显示
·
看论文学技能之图像局部放大图
·论文中图像局部放大展示结果,来可视化图像细节信息
咱也学学来简单实现一下~~嘻嘻
·python代码实现(注释版)
import cv2
import numpy as np
def myfun(img,x,y,w,h):
#img:输入图像
#x,y,w,h:局部图像的坐标和宽高
#返回值:局部图像放大后的图像
#局部图像放大
img1=img[y:y+h,x:x+w]
img1 = cv2.resize(img1,(w*2,h*2),interpolation=cv2.INTER_CUBIC)
return img1
if __name__ == '__main__':
# 读取图像
img = cv2.imread('./00001.png')
#获取图像的高和宽
sp = img.shape#读取出的图像矩阵的shape是按 高度、宽度、通道数 这个顺序,图像宽度是第一个维度,其实也就是返回的图像矩阵的行数、列数、通道数
img_h = sp[0] #高
img_w = sp[1] #宽
# print(sp)
#注:实际处理中是先宽后高的
#初始化一个两倍宽,等高的img2,用来存放最终结果
img2 = cv2.resize(img,(img_w*2,img_h))
# 设置要放大区域的信息。x,y,w,h:局部图像的坐标和宽高
x = 150
y = 100
w = 200
h = 200
#将待放大区域在图中框出
cv2.rectangle(img, (x, y), (x + w, y + h), (0, 0, 255), 2)
# 调用局部图像放大函数
img_big = myfun(img,x,y,w,h)
#将放大图像调整至图像大小
img_big = cv2.resize(img_big,(img_w,img_h))
# print(img_big.shape)
#将原图和放大图复制到img2
img2[0:img_h,0:img_w] = img
img2[0:img_h,img_w:img_w*2] = img_big
# 将放大后区域在图img2中框出
cv2.rectangle(img2, (img_w, 0), (img_w*2, img_h), (0, 0, 255), 2)
#绘制放大区域前后的连接线
img = cv2.line(img2, (x, y), (img_w, 0), (0, 0, 255))
img = cv2.line(img2, (x, y+h), (img_w, img_h), (0, 0, 255))
img = cv2.line(img2, (x+w, y), (img_w*2, 0), (0, 0, 255))
img = cv2.line(img2, (x+w, y+h), (img_w*2, img_h), (0, 0, 255))
# 展示结果
cv2.imshow('img', img2)
cv2.waitKey(0)
cv2.destroyAllWindows()
·结果示例
更多推荐
所有评论(0)