<
>

基于python-opencv的图像最大幅值提取

2020-06-28 08:49:14 来源:易采站长站 作者:易采站长站整理


b=image.shape[1] #图片的宽
#print(a)
#print(b)
#将图片分为两![在这里插入图片描述](https://img-blog.csdnimg.cn/20200331110527961.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2FsbGFuX2JhYmE=,size_16,color_FFFFFF,t_70#pic_center)部分
dis_h = a
dis_w = int(b/2)
sub1=image[1:dis_h,1:dis_w]#第一心音
sub2=image[1:dis_h,dis_w : :]#第二心音图

5、最后运行效果图
(原图)
在这里插入图片描述
(子图1)
在这里插入图片描述
(子图2)
在这里插入图片描述
(提取结果)
在这里插入图片描述
6、所有代码呈上

import cv2 #导入opencv
import os
import numpy as np
#寻找最大值函数传进参数为数组
def matdistance(*discance):
price= discance[0] #print(discance)
mindistance = price[0] matdistance = price[0] #print(price[0])
matprofit = 0
w=len(price)
for i in range(w):
if price[i]!=0 :
if price[i]matdistance or price[i]==matdistance :
matdistance=price[i]

print("最低点纵坐标",mindistance)
print("最高点纵坐标",matdistance)
matprofit=matdistance-mindistance
return matprofit
#遍历全部图像,并记录像素为(0,0,0)点的坐标
def cxsearch(image):
k = 0
height=image.shape[0] print("图像高", height)
width=image.shape[1] print("图像宽", width)
x = [0] * 5000
for i in range(height): # 遍历图像的高
for j in range(width): # 遍历图像的宽
pixel = image[i, j] # 读取该点的像素值
if all(pixel == (0, 0, 0)):
x[k] = i # 存取像素点是黑色的的纵坐标
# print(x[k])
k += 1
return x

image = cv2.imread("F:proposalnormalphotosa4.png", cv2.IMREAD_COLOR) #读入图片
a=image.shape[0] #图片的高
b=image.shape[1] #图片的宽
#print(a)
#print(b)
#将图片分为两部分
dis_h = a
dis_w = int(b/2)
sub1=image[1:dis_h,1:dis_w]#第一心音
sub2=image[1:dis_h,dis_w : :]#第二心音图
#print("okokok",sub1.shape[0])
#print("ononon",sub1.shape[1])

z1=matdistance(cxsearch(sub1))#求取第一心音的最大幅值

暂时禁止评论

微信扫一扫

易采站长站微信账号