iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python如何实现数字图像处理染色体计数
  • 169
分享到

Python如何实现数字图像处理染色体计数

2023-07-02 00:07:33 169人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

本篇内容主要讲解“python如何实现数字图像处理染色体计数”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python如何实现数字图像处理染色体计数”吧!一、实验内容 对于下面这幅图像

本篇内容主要讲解“python如何实现数字图像处理染色体计数”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习Python如何实现数字图像处理染色体计数”吧!

一、实验内容 

对于下面这幅图像,编程实现染色体计数,并附简要处理流程说明。

Python如何实现数字图像处理染色体计数

二、实验步骤

中值滤波

图像二值化

膨胀图像

腐蚀图像

计算光影背景

移除背景

检测染色体

三、代码

import cv2import numpy as np# 计算光影背景def calculateLightPattern(img4):    h, w = img4.shape[0], img4.shape[1]    img5 = cv2.blur(img4, (int(w/3), int(w/3)))    return img5# 移除背景def removeLight(img4, img5, method):    if method == 1:        img4_32 = np.float32(img4)        img5_32 = np.float32(img5)        ratio = img4_32 / img5_32        ratio[ratio > 1] = 1        aux = 1 - ratio        # 按比例转换为8bit格式        aux = aux * 255        aux = np.uint8(aux)    else:        aux = img5 - img4    return auxdef ConnectedComponents(aux):    num_objects, labels = cv2.connectedComponents(aux)    if num_objects < 2:        print("connectedComponents未检测到染色体")        return    else:        print("connectedComponents检测到染色体数量为:", num_objects - 1)    output = np.zeros((aux.shape[0], aux.shape[1], 3), np.uint8)    for i in range(1, num_objects):        mask = labels == i        output[:, :, 0][mask] = np.random.randint(0, 255)        output[:, :, 1][mask] = np.random.randint(0, 255)        output[:, :, 2][mask] = np.random.randint(0, 255)    return outputdef ConnectedComponentsStats(aux):    num_objects, labels, status, centroids = cv2.connectedComponentsWithStats(aux)    if num_objects < 2:        print("connectedComponentsWithStats未检测到染色体")        return    else:        print("connectedComponentsWithStats检测到染色体数量为:", num_objects - 1)    output = np.zeros((aux.shape[0], aux.shape[1], 3), np.uint8)    for i in range(1, num_objects):        mask = labels == i        output[:, :, 0][mask] = np.random.randint(0, 255)        output[:, :, 1][mask] = np.random.randint(0, 255)        output[:, :, 2][mask] = np.random.randint(0, 255)    return outputdef FindContours(aux):    contours, hierarchy = cv2.findContours(aux, cv2.RETR_EXTERNAL, cv2.CHaiN_APPROX_SIMPLE)    if len(contours) == 0:        print("findContours未检测到染色体")        return    else:        print("findContours检测到染色体数量为:", len(contours))    output = np.zeros((aux.shape[0], aux.shape[1], 3), np.uint8)    for i in range(len(contours)):        cv2.drawContours(            output,            contours,            i,            (np.random.randint(0, 255),             np.random.randint(0, 255),             np.random.randint(0, 255)), 2)    return output# 读取图片img = cv2.imread('img.png', 0)pre_img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)  # 二值化函数# 第一步:中值滤波# 中值滤波img1 = cv2.medianBlur(img, 3)# 显示并保存图片cv2.imshow('gray', img)cv2.imshow('medianBlur', img1)cv2.imwrite('medianBlur.jpg', img1)# 第二步:图像二值化# 图像二值化ret, img2 = cv2.threshold(img1, 140, 255, 0, img1)  # 二值化函数# 显示并保存图片cv2.imshow('threshold', img2)cv2.imwrite('threshold.jpg', img2)# 第三步:膨胀图像dilate_kernel = np.ones((3, 3), np.uint8)img3 = cv2.dilate(img2, dilate_kernel)# 显示并保存图片cv2.imshow('dilate', img3)cv2.imwrite('dilate.jpg', img3)# 第四步:腐蚀图像erode_kernel = np.ones((7, 7), np.uint8)img4 = cv2.erode(img3, erode_kernel)# 显示并保存图片cv2.imshow('erode', img4)cv2.imwrite('erode.jpg', img4)# 第五步:计算光影背景img5 = calculateLightPattern(img4)# 显示并保存图片cv2.imshow('LightPattern', img5)cv2.imwrite('LightPattern.jpg', img5)# 第六步:移除背景aux = removeLight(img4, img5, 1)# 显示并保存图片cv2.imshow('removeLight', aux)cv2.imwrite('removeLight.jpg', aux)# 第七步:检测轮廓output1 = ConnectedComponents(aux)output2 = ConnectedComponentsStats(aux)output3 = FindContours(aux)# 显示并保存图片cv2.imshow('connectedComponents', output1)cv2.imwrite('connectedComponents.jpg', output1)cv2.imshow('connectedComponentsWithStats', output2)cv2.imwrite('connectedComponentsWithStats.jpg', output2)cv2.imshow('findContours', output3)cv2.imwrite('findContours.jpg', output3)cv2.waiTKEy(0)

四、结果

中值滤波

Python如何实现数字图像处理染色体计数

图像二值化

Python如何实现数字图像处理染色体计数

膨胀图像

Python如何实现数字图像处理染色体计数

腐蚀图像

Python如何实现数字图像处理染色体计数

计算光影背景

Python如何实现数字图像处理染色体计数

移除背景

Python如何实现数字图像处理染色体计数

检测染色体

(1)connectedComponents.jpg

Python如何实现数字图像处理染色体计数

(2)connectedComponentsWithStats.jpg

Python如何实现数字图像处理染色体计数

(3)findContours.jpg

Python如何实现数字图像处理染色体计数

染色体个数为46

到此,相信大家对“Python如何实现数字图像处理染色体计数”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: Python如何实现数字图像处理染色体计数

本文链接: https://www.lsjlt.com/news/338664.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python如何实现数字图像处理染色体计数
    本篇内容主要讲解“Python如何实现数字图像处理染色体计数”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python如何实现数字图像处理染色体计数”吧!一、实验内容 对于下面这幅图像...
    99+
    2023-07-02
  • Python实现数字图像处理染色体计数示例
    目录一、实验内容 二、实验步骤三、代码四、结果一、实验内容  对于下面这幅图像,编程实现染色体计数,并附简要处理流程说明。 二、实验步骤 1.中值滤波 2.图像...
    99+
    2024-04-02
  • python数字图像处理之图像简单滤波实现
    目录引言1、sobel算子2、roberts算子3、scharr算子4、prewitt算子5、canny算子6、gabor滤波7、gaussian滤波8、median9、水平、垂直边...
    99+
    2024-04-02
  • python数字图像处理之估计噪声参数
    估计噪声参数 周期噪声的参数通常是通过检测图像的傅里叶谱来估计的。 只能使用由传感器生成的图像时,可由一小片恒定的背景灰度来估计PDF的参数。 来自图像条带的数据的最简单用途是,计算...
    99+
    2024-04-02
  • python数字图像处理实现图像的形变与缩放
    目录skimage的transform模块1、改变图片尺寸resize2、按比例缩放rescale3、旋转 rotate4、图像金字塔skimage的transform模块 图像的形...
    99+
    2024-04-02
  • python数字图像处理之图像的批量处理
    目录正文图片集合函数批量读取批量转换为灰度图批量保存正文 有些时候,我们不仅要对一张图片进行处理,可能还会对一批图片处理。这时候,我们可以通过循环来执行处理,也可以调用程序自带的图片...
    99+
    2024-04-02
  • Java数字图像处理之图像灰度处理怎么实现
    本篇内容介绍了“Java数字图像处理之图像灰度处理怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、简介图像灰度化处理可以作为图像处...
    99+
    2023-07-02
  • python数字图像处理数据类型及颜色空间转换
    目录一、图像数据类型及转换1、unit8转float2、float转uint8二、颜色空间及其转换例:rgb转灰度图其它的转换例:rgb转hsv一、图像数据类型及转换 在skimag...
    99+
    2024-04-02
  • python之数字图像处理方式
    目录基本概念图像增强整体代码线性变换分段线性变换对数变换幂律变换直方图图像滤波平滑图像锐化图像总结基本概念 数字图像定义 对于一幅图像,我们可以将其放入坐标系中,这里取图像左上定点为...
    99+
    2023-05-19
    python数字图像处理 python数字图像 python图像处理
  • python数字图像处理图像的绘制详解
    目录正文一、用figure函数和subplot函数分别创建主窗口与子图二、用subplots来创建显示窗口与划分子图三、其它方法绘图并显示正文 实际上前面我们就已经用到了图像的绘制,...
    99+
    2024-04-02
  • python数字图像处理-图像噪声与去噪
    图像噪声 椒盐噪声 概述: 椒盐噪声(salt & pepper noise)是数字图像的一个常见噪声,所谓椒盐,椒就是黑,盐就是白,椒盐噪声就是在图像上随机出现黑色白色的像素。椒盐噪声是一种因为信号脉冲强度引起的噪声...
    99+
    2023-01-31
    噪声 图像处理 图像
  • python如何给函数图像填色
    在python中使用turtle库给函数图像填色,具体方法如下:import turtlei = int(input())angle = 360.0 / idistance = 1000.0 / iturtle.begin_fill()tu...
    99+
    2024-04-02
  • Python数字图像处理基础直方图详解
    目录直方图的定义直方图的性质直方图的应用图像增强图像分割图像识别Python直方图的计算直方图的定义 直方图的性质 只统计某个灰度级出现的次数,图像的大小不一样的话, 某灰度值...
    99+
    2024-04-02
  • Python图像处理之如何实现目标物体轮廓提取
    这篇文章将为大家详细讲解有关Python图像处理之如何实现目标物体轮廓提取,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1 引言目标物体的边缘对图像识别和计算机分析十分有用。边缘可以勾画出目标物体,使观察...
    99+
    2023-06-20
  • OpenMV如何实现图像处理
    这篇文章主要为大家展示了“OpenMV如何实现图像处理”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“OpenMV如何实现图像处理”这篇文章吧。一、图像处理基础知识摄像头:光学信号转换成电信号。计...
    99+
    2023-06-25
  • Python数字图像处理代数之加减乘运算
    目录代数运算定义加法运算减法运算乘法运算代数运算 定义 加法运算 图像叠加需要满足该条件:两幅图像的像素必须相同(尺寸,形状) 减法运算 乘法运算 1、图像的局部显...
    99+
    2024-04-02
  • python数字图像处理之图像自动阈值分割示例
    目录引言1、threshold_otsu2、threshold_yen3、threshold_li4、threshold_isodata5、threshold_adaptive引言 ...
    99+
    2024-04-02
  • 如何使用 PHP 函数实现图像处理功能?
    php 提供了一系列内置函数用于图像处理,可轻松调整、转换和操纵图像:载入图像:使用 imagecreatefrom*() 函数从文件扩展名载入图像。调整图像大小:imagecopyre...
    99+
    2024-04-22
    图像处理 php
  • python数字图像处理之基本图形的绘制
    目录引言1、画线条2、画圆3、多边形4、椭圆5、贝塞儿曲线6、画空心圆7、空心椭圆引言 图形包括线条、圆形、椭圆形、多边形等。 在skimage包中,绘制图形用的是draw模块,不要...
    99+
    2024-04-02
  • Python如何实现sg2im文字转图像
    小编给大家分享一下Python如何实现sg2im文字转图像,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!1.从github上下载源码!git clone https://github.com/google/sg2im.gi...
    99+
    2023-06-25
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作