0

我有一个医学项目,想提取一个特殊的部分我想要的区域

在不理解其坐标的情况下自动提取眼睛图像,而不是手动改变该区域的坐标,因为我从许多患者身上采集,我认为必须找到它的形状。我的目标是通过计算肺结膜中的红色像素来确定贫血与非贫血。我使用掩蔽法(k表示)来完成这项工作,但我希望可以采用一种方法,首先直接提取肺结膜,然后使用k表示来掩蔽图像并进行查找,因为我的结果会更准确。当我使用图像分割的k均值时,我发现另一个重叠的红色像素破坏了我的准确性。

k_平均值。我也听说过要使用机器学习,但在进行机器学习以在患者的图像中找到附近区域后,我需要提取关节牙髓。所以我需要代码来只提取和只提取结膜肺。

我尝试了k_means和内核,但添加了另一个不需要的红色像素。我听说了实例分割面具RCNN。你认为我有我想要的区域,就像上面的图片作为CNN的数据一样,那么如何将其用于我的项目。

导入cv2将numpy导入为np#阅读图像image=cv2.imread('c:/users/stk/desktop/d.png')#将图像转换为HSVhsv=cv2.cvt颜色(图像,cv2.COLOR_BGR2HSV)#定义红色的上下限lower_red=np.数组([0,120,70])upper_red=np.array([10255255])#为红色创建遮罩mask1=cv2.in范围(hsv,lower_red,upper_red)#定义红色的上下限lower_red=np.数组([170,120,70])upper_red=np.array([180255255])#为红色创建遮罩mask2=cv2.in范围(hsv,lower_red,upper_red)#合并两个遮罩mask=掩码1+掩码2#创建用于形态学操作的内核内核=np.ones((5,5),np.uint8)#执行形态学操作mask=cv2.morphologyEx(掩码,cv2.MORPH_CLOSE,内核)mask=cv2.morphologyEx(掩码,cv2.MORPH_OPEN,内核)#将遮罩应用于原始图像结果=cv2.bitwise_and(image,image,mask=掩码)#保存结果cv2.imwrite('extracted_red_object.png',结果)#显示结果cv2.imshow(“提取的红色对象”,结果)cv2.waitKey(0)cv2.destroyAllWindows()

1个答案1

重置为默认值
0

我之前认为我需要屏蔽图像,但有很多错误。我通过亲爱的朋友们的帮助知道了我的问题,我需要一个CNN模型和机器学习。谢谢他们。我假设我的项目中的形状是一个圆形,而不是结膜肺。所以我的代码的基础是这样的,甚至有很多距离。

导入操作系统从mrcnn.config导入config从mrcnn.model导入MaskRCNNModel#准备训练数据集使用循环代替conpaldataset_dir='路径/目标/数据集'circle_dir=os.path.jjoin(dataset_dir,'circle')no_circle_dir=os.path.jjoin(数据集dir,'no_circle')#准备培训环境类CircleConfig(Config):NAME=“圆圈”NUM_CLASSES=2#背景+圆圈IMAGE_MIN_DIM=512IMAGE_MAX_DIM=512RPN_ANCHOR_SCALES=(8、16、32、64、128)火车_ROIS_PER_IMAGE=32步骤_性能_性能=100验证_STEPS=50检测_MIN_CONFIDENCE=0.7#训练MASK RCNN模型model=MaskRCNNModel(mode=“training”,config=CircleConfig(),model_dir=“./”)模型.load_dataset(datasetdir)模型.列车()#保存训练有素的wieghtsmodel.save_weights(“mask_rcnn_circle.h5”)

你的答案

单击“发布您的答案”,表示您同意我们的服务条款并确认您已阅读我们的隐私政策.

不是你想要的答案吗?浏览标记的其他问题问你自己的问题.