gray

python skimage图像处理(一)

安稳与你 提交于 2019-12-01 05:00:47
python skimage图像处理(一) This blog is from: https://www.jianshu.com/p/f2e88197e81d 基于python脚本语言开发的数字图片处理包,比如PIL,Pillow, opencv, scikit-image等。 PIL和Pillow只提供最基础的数字图像处理,功能有限;opencv实际上是一个c++库,只是提供了python接口,更新速度非常慢。scikit-image是基于scipy的一款图像处理包,它将图片作为numpy数组进行处理,正好与matlab一样,因此,我们最终选择scikit-image进行数字图像处理。 Image读出来的是PIL的类型,而skimage.io读出来的数据是numpy格式的 import Image as img import os from matplotlib import pyplot as plot from skimage import io,transform #Image和skimage读图片 img_file1 = img.open('./CXR_png/MCUCXR_0042_0.png') img_file2 = io.imread('./CXR_png/MCUCXR_0042_0.png') 输出可以看出Img读图片的大小是图片的(width, height)

python PIL 图像处理

旧时模样 提交于 2019-12-01 05:00:40
python PIL 图像处理 This blog is from: https://www.jianshu.com/p/e8d058767dfa Image读出来的是PIL的类型,而skimage.io读出来的数据是numpy格式的 #Image和skimage读图片 import Image as img import os from matplotlib import pyplot as plot from skimage import io,transform img_file1 = img.open('./CXR_png/MCUCXR_0042_0.png') img_file2 = io.imread('./CXR_png/MCUCXR_0042_0.png') 输出可以看出Img读图片的大小是图片的(width, height);而skimage的是(height,width, channel), [这也是为什么caffe在单独测试时要要在代码中设置:transformer.set_transpose('data',(2,0,1)),因为caffe可以处理的图片的数据格式是(channel,height,width),所以要转换数据] #读图片后数据的大小: print "the picture's size: ", img_file1.size print "the

【图像分割python实现三】laplace算子边缘检测

僤鯓⒐⒋嵵緔 提交于 2019-11-30 12:11:31
# -*- coding: utf-8 -*- import matplotlib . pyplot as plt import numpy as np import cv2 """ laplace算子作为边缘检测,是各方向的二阶导数 其卷积模板为: 0 1 0 1 -4 1 0 1 0 或拓展模板 1 1 1 1 -8 1 1 1 1 """ path = '/Volumes/项目/10.Deep Learning/06.Severstal Steel Defect Detection/00.data/other_img/' img = cv2 . imread ( path + 'lena.jpg' ) img_gray = cv2 . cvtColor ( img , cv2 . COLOR_RGB2GRAY ) img_gray_array = np . array ( img_gray ) #3 * 3 卷积 def conv2 ( img , H , W , kernel ) : k_h = kernel . shape [ 0 ] k_w = kernel . shape [ 1 ] res = np . zeros ( [ H , W ] ) for i in range ( 0 , H - ( k_h - 1 ) ) : for j in range ( 0 ,

【图像分割python实现四】区域生长算法

↘锁芯ラ 提交于 2019-11-30 12:11:24
# -*- coding: utf-8 -*- import matplotlib . pyplot as plt import numpy as np import cv2 """ 区域生长算法 前提: 生长规则可以是平均灰度、纹理和颜色等 算法: 1. 顺序查找图像,找到第一个未归类的像素 (x0, y0) 2. 通过遍历该像素的四领域集合,若满足生长规则则并入区域集合; 3. 继续寻找该区域集合的四领域知道无法继续生长; 4. 重新回到步骤1,直到所有图像像素都被分类 """ path = '/XXXX/' img = cv2 . imread ( path + 'lena.jpg' ) img_gray = cv2 . cvtColor ( img , cv2 . COLOR_RGB2GRAY ) img_gray_array = np . array ( img_gray ) img_gray_array = cv2 . resize ( img_gray_array , ( 128 , 128 ) , interpolation = cv2 . INTER_LINEAR ) img_mask = np . zeros ( img_gray_array . shape ) grow_dir = [ ( 0 , 1 ) , ( 0 , - 1 ) , ( 1 , 0 ) ,

【图像分割python实现五】均值聚类

隐身守侯 提交于 2019-11-30 12:11:12
# -*- coding: utf-8 -*- import matplotlib . pyplot as plt import numpy as np import cv2 """ k-mean聚类图像分割算法 1. 这里FCM 模糊聚类也是相似的,只是将硬分类变成隶属函数; 2. 但无论是K-mean还是FCM 隶属函数都很麻烦,这里用的是灰度值, 基本也就等价于一种自适应的基于阈值的图像分割了 第一步. 随机设定一个分类, 初始化C个灰度值 第二步. 计算图像中所有像素与这个分类的关系,进行分类; 第三步. 将分类后的像素灰度均值作为新的分类 第四步. 迭代上述三步,直到新的分类点与老的分类点满足收敛要求 """ path = '/XXXXX/' img = cv2 . imread ( path + 'lena.jpg' ) img_gray = cv2 . cvtColor ( img , cv2 . COLOR_RGB2GRAY ) img_gray_array = np . array ( img_gray ) img_gray_array = cv2 . resize ( img_gray_array , ( 128 , 128 ) , interpolation = cv2 . INTER_LINEAR ) img_classifier = np . zeros

【图像分割python实现六】灰度共生矩阵

让人想犯罪 __ 提交于 2019-11-30 12:10:46
# -*- coding: utf-8 -*- import matplotlib . pyplot as plt import numpy as np import cv2 """ 灰度共生矩阵 GLCM 1. 取 N*M 图像的任意一点(x, y),以及另外一点(x+a, y+b) 对应的灰度值为(g1, g2) 备注:这里g1对应(x,y)的灰度值,g2对应(x+a, x+b)的灰度值 2. 遍历图像则会有 N*M 个(g1, g2)的值, 根据这个值出现的频率计算P(g1, g2) 3. 这个概率分布就是灰度共生矩阵 备注:这里a和b取不同的值,就意味着图像从不同的方向进行扫描形成灰度共生矩阵, 例如 a = 1 b = 0,则是水平向左扫描 根据这个灰度共生矩阵,可以直接得出类似ASM能量(灰度共生矩阵的平方和)、对比度、逆差距等一些列图像特征; """ #path = '/XXXXX/' #img = cv2.imread(path + 'wenli01.jpeg') path = '/Volumes/项目/10.Deep Learning/06.Severstal Steel Defect Detection/00.data/train_images/' img = cv2 . imread ( path + '0002cc93b.jpg' ) img_gray =

[opencv]图像预处理方案及方式

亡梦爱人 提交于 2019-11-30 07:51:06
Mat hsv; cvtColor(transmat,hsv,COLOR_BGR2HSV); Scalar lower_white (0,0,0); Scalar upper_white (180,255,180); Mat mask_white; inRange(hsv,lower_white,upper_white,mask_white); Mat gray = mask_white; threshold(gray,gray,100,255,THRESH_OTSU + THRESH_BINARY); // cvtColor(transmat, src_gray, COLOR_BGR2GRAY); // src_gray = Scalar::all(255) - src_gray; // // blur(src_gray, src_gray, Size(3, 3)); // equalizeHist(src_gray, src_gray); // imshow("滤波后", src_gray); // imwrite("/home/leoxae/KeekoRobot/TestPic/blur2_2.png",src_gray); // waitKey(); 来源: https://www.cnblogs.com/lx17746071609/p/11573532.html

6.二值化

天大地大妈咪最大 提交于 2019-11-30 05:55:34
在图像处理中,Thresholding中文翻译过来叫二值化或者阈值化。二值化就是把图片传换成只有white和black这两种颜色。通过Thresholding,可以让图片中感兴趣的颜色变成主角--white,其余的颜色全部隐藏--black。另外,二值化后的图片也便于计算机进行分析,因为边缘轮廓十分清晰,所以计算机可以轻松找到边界线。然而,在找边界这方面,Thresholding并不是特别好的算法,有些时候遇到某些特殊图片效果也不好。 #导入工具包 from imutils import * image = imread('image/coins.jpg') show(image) gray = cv2.cvtColor(image, cv2.COLOR_RGB2GRAY) plt.imshow(gray,'gray') plt.axis('off') plt.show() ret1,thresh1 = cv2.threshold(gray,127,255,cv2.THRESH_BINARY) ret2,thresh2 = cv2.threshold(gray,127,255,cv2.THRESH_BINARY_INV) ret3,thresh3 = cv2.threshold(gray,127,255,cv2.THRESH_TRUNC) ret4,thresh4 = cv2

Bootstrap 颜色RGB对照表

生来就可爱ヽ(ⅴ<●) 提交于 2019-11-30 04:28:22
Bootstrap中只要颜色名称相同,RGB相同。 例如 nav-dark 和 bg-dark 都是同一种颜色。 英文名 中文 RGB对照 示例 blue 蓝 #007bff ▇▇ cyan 青 #17a2b8 ▇▇ dark 黑 #343a40 ▇▇ gray 灰 #6c757d ▇▇ gray-dark 灰黑 #343a40 ▇▇ green 绿 #28a745 ▇▇ indigo 靛蓝 #6610f2 ▇▇ orange 橙 #fd7e14 ▇▇ pink 粉 #e83e8c ▇▇ purple 紫 #6f42c1 ▇▇ red 红 #dc3545 ▇▇ teal 蓝绿 #20c997 ▇▇ white 白 #fff ▇▇ yellow 黄 #ffc107 ▇▇ – – – – primary 主要 #007bff ▇▇ secondary 次要 #6c757d ▇▇ success 成功 #28a745 ▇▇ info 信息 #17a2b8 ▇▇ warning 警告 #ffc107 ▇▇ danger 危险 #dc3545 ▇▇ light 浅色 #f8f9fa ▇▇ 来源: CSDN 作者: Shumao_94 链接: https://blog.csdn.net/u010992313/article/details/99701862

通过可视化找到图片最佳的二值化的值

依然范特西╮ 提交于 2019-11-29 14:00:37
在图片预处理的过程中,我们常常需要二值化图片,但是二值化值一个个去试,比较麻烦。下面通过trackbar来可视化连续二值化图片的情景。代码如下: import cv2 def threshTrackbar(img): """ 使二值化图片过程可视化 :param img: 待二值化的灰度图 :return thr_v,Shading:阈值,大于阈值时替代的值 """ img_copy = img def nothing(x): pass # Create a window cv2.namedWindow('image') cv2.setMouseCallback('image', OnMouseAction) # create trackbars for color change cv2.createTrackbar('thr', 'image', 121, 255, nothing) cv2.createTrackbar('Shading', 'image', 255, 255, nothing) while (True): cv2.imshow('image', img) k = cv2.waitKey(1) & 0xFF # 通过关闭窗口的右上角关闭 if cv2.getWindowProperty('image', cv2.WND_PROP_AUTOSIZE) < 1: