opencv血管分割

使用边缘检测算子对眼底血管进行分割,简单的实现了一下,没有调参,效果也不是很好。

头文件以及图像读取

#include<iostream>
#include<opencv2\opencv.hpp>
using namespace std;
using namespace cv;
void on_trackbar(int, void*) {}//后续用作createTrackbar()的参数
int main()
{
	Mat img;

	img = imread("oct.jpeg");
	imshow("img", img);

形态学处理

getStructuringElement()函数介绍
morphologyEx()函数介绍

	Mat frame1, ;
	Mat element1 = getStructuringElement(MORPH_RECT, Size(10, 10));//构造一个特定大小和形状的结构元素,用于图像形态学处理。

	morphologyEx(img, frame1, MORPH_OPEN, element1);//腐蚀膨胀等形态学操作组合
	imshow("MORPH_RECT", frame1);

在这里插入图片描述

边缘检测

createTrackbar()函数介绍

	Mat frame2
	namedWindow("Trackbar");//创建窗口
	int slider1, slider2;
	cvtColor(frame1, frame1, COLOR_BGR2GRAY);
	createTrackbar("Cmin", "Trackbar", &slider1, 255, on_trackbar);
	createTrackbar("Cmax", "Trackbar", &slider2, 255, on_trackbar);
	imshow("gray", frame1);
	while (1) 
	{

	Mat dst,dst1;
	Canny(frame1, frame2, slider1, slider2);//边缘检测
	imshow("Trackbar", frame2);
	waitKey(30);
	}

在这里插入图片描述
在这里插入图片描述

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐