二值图片轮廓提取

# -*- coding: UTF-8 -*-

import cv2
import numpy as np
import os

reagents = [‘MaskVIA1‘, ‘MaskVIA3‘, ‘MaskVILI‘]
if __name__ == ‘__main__‘:

    path = ‘F:/project/Cancer/dataset/Cervical_Data/Cut_Data/CANCER/3/‘

    for file_name in os.listdir(path):

        if not os.path.isdir(path+‘/‘+file_name):

            print(file_name)
            image = cv2.imread(path + ‘/‘ + file_name)
            gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
            gray_image = cv2.Canny(gray_image, 100, 200)
            gray_image = cv2.morphologyEx(gray_image, cv2.MORPH_DILATE, np.ones((5, 5), np.uint8))

            gray_image = 255 - gray_image

            cv2.imwrite(path + ‘new_label/‘ + file_name.split(‘.‘)[0] + ‘.‘ + file_name.split(‘.‘)[1], gray_image)

            ‘‘‘
            cv2.imshow(file_name, gray_image)
            cv2.waitKey(0)
            cv2.destroyWindow(file_name)
            ‘‘‘

    print(‘all_finished‘)

单个文件夹内部图片提取

# -*- coding: UTF-8 -*-

import cv2
import numpy as np
import os

class_names = [‘NORMAL‘, ‘CIN1‘, ‘CIN2‘, ‘CIN3‘, ‘CANCER‘]
reagents = [‘MaskVIA1‘, ‘MaskVIA3‘, ‘MaskVILI‘]

if __name__ == ‘__main__‘:

    path = ‘F:/project/Cancer/dataset/Cervical_Data/Cut_Data‘
    path1 = ‘F:/project/Cancer/dataset/Cervical_Data/Labels‘

    for class_name in class_names:
        src_path = path + ‘/‘ + class_name
        src_path1 = path1 + ‘/‘ + class_name
        for patient_code in os.listdir(src_path):
            src_patient_dir = src_path + ‘/‘ + patient_code
            print(src_patient_dir)
            tar_patient_dir = src_path1 + ‘/‘ + patient_code
            print(tar_patient_dir)
            file_names = [res for res in os.listdir(src_patient_dir) if   (res.startswith(‘Mask‘) and res.endswith(‘.jpg‘))]
            os.makedirs(tar_patient_dir)
            for file_name in file_names:
                print(file_name)
                image = cv2.imread(src_patient_dir + ‘/‘ + file_name)
                gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
                gray_image = cv2.Canny(gray_image, 100, 200)
                gray_image = cv2.morphologyEx(gray_image, cv2.MORPH_DILATE, np.ones((10, 10), np.uint8))

                gray_image = 255 - gray_image

                cv2.imwrite(tar_patient_dir  +‘/‘ + file_name, gray_image)

多层文件图片边缘分割

原文地址:https://www.cnblogs.com/ziytong/p/10705234.html

时间: 2025-01-12 05:23:15

二值图片轮廓提取的相关文章

[转载+原创]Emgu CV on C# (五) —— Emgu CV on 局部自适应阈值二值化

局部自适应阈值二值化 相对全局阈值二值化,自然就有局部自适应阈值二值化,本文利用Emgu CV实现局部自适应阈值二值化算法,并通过调节block大小,实现图像的边缘检测. 一.理论概述(转载自<OpenCV_基于局部自适应阈值的图像二值化>) 局部自适应阈值则是根据像素的邻域块的像素值分布来确定该像素位置上的二值化阈值.这样做的好处在于每个像素位置处的二值化阈值不是固定不变的,而是由其周围邻域像素的分布来决定的.亮度较高的图像区域的二值化阈值通常会较高,而亮度较低的图像区域的二值化阈值则会相适

机器学习进阶-项目实战-信用卡数字识别 1.cv2.findContour(找出轮廓) 2.cv2.boudingRect(轮廓外接矩阵位置) 3.cv2.threshold(图片二值化操作) 4.cv2.MORPH_TOPHAT(礼帽运算突出线条) 5.cv2.MORPH_CLOSE(闭运算图片内部膨胀) 6. cv2.resize(改变图像大小) 7.cv2.putText(在图片上放上文本)

7. cv2.putText(img, text, loc, text_font, font_scale, color, linestick) # 参数说明:img表示输入图片,text表示需要填写的文本str格式,loc表示文本在图中的位置,font_size可以使用cv2.FONT_HERSHEY_SIMPLEX, font_scale表示文本的规格,color表示文本颜色,linestick表示线条大小 信用卡数字识别: 信用卡      数字模板涉及到的内容:主要是采用模板匹配的思想 思

Matlab 对图片的二值化处理

这几天做了一道题目,要求在 5000 张图片中找出 30 张与样例相同但经过放大或缩小,高亮或变暗的图片. 整体思路是把图片hash成一段指纹,这个指纹和图片的大小.格式.明暗均无关,只和图片的内容本身有关. 1.先把彩色图片转为灰度图 如果原本的一个像素点的rgb值为(r1,g1,b1),一个比较简易的方法转为灰度图, 就是 gray1=(r1*299+g1*587+b1*114+500)/1000 那么该像素点的rgb颜色变为(gray1,gray1,gray1). 而我用的是 Matlab

c#实现图片二值化例子(黑白效果)

C#将图片2值化示例代码,原图及二值化后的图片如下: 原图: 二值化后的图像: 实现代码: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 7

验证码图片二值化问题 BitmapData 怎么解决

对不起,这算是一篇求助啦,先上图,防止不清楚,放大了一点,下面是图片,上面是没有二值化的,下面是二值化之后的,我其实不懂什么是二值化啦,就是一定范围变黑,变白 问题: 为什么我的结果上面还是有很多彩色的小点点呢?原来都是没有的-- 谁能帮我看看代码怎么改!谢谢大牛们帮忙!! Bitmap bit1 = new Bitmap(bit); Rectangle rect1 = new Rectangle(0, 0, bit1.Width, bit1.Height); BitmapData bitd =

Java 对二值化图片识别连通域

用Java 对 已经 二值化了的图片 标记连通域 每块的连通域都标记不一样的数字 1 public static void main(String [] args) throws IOException { 2 //二值化 3 BufferedImage image = ImageIO.read(new File("F:/MyCode/LianTongYu/specialGray.jpg")); 4 int w = image.getWidth(); 5 int h = image.g

Ubuntu 14.04 下使用 OpenCV 图片二值化处理

参考: OpenCV - Ubuntu 14.04 64 bit 图片二值化工具 Ubuntu 14.04 下使用 OpenCV 图片二值化处理 TBD. 原文地址:https://www.cnblogs.com/qq952693358/p/8996719.html

C#图片灰度处理(位深度24→位深度8)、C#图片二值化处理(位深度8→位深度1)

C#图片灰度处理(位深度24→位深度8) #region 灰度处理 /// <summary> /// 将源图像灰度化,并转化为8位灰度图像. /// </summary> /// <param name="original"> 源图像. </param> /// <returns> 8位灰度图像. </returns> public static Bitmap RgbToGrayScale(Bitmap orig

python图片二值化提高识别率

import cv2from PIL import Imagefrom pytesseract import pytesseractfrom PIL import ImageEnhanceimport reimport string def createFile(filePath,newFilePath): img = Image.open(filePath) # 模式L”为灰色图像,它的每个像素用8个bit表示,0表示黑,255表示白,其他数字表示不同的灰度. Img = img.conver