用python做图像处理遇到的问题1

1.

遇到的第一个问题就是选择哪个图像库的问题,通过调研,发现用的比较多的库有:

opencv  ;  PIL(pillow)  ;   matplotlib  ;   scikit-image 简称skimage

因为用的是anaconda2  spyder(python2.7) ,后三个库都配置好了;

参考:https://blog.csdn.net/qq_36941368/article/details/82998296#skimage_186

https://blog.csdn.net/chenxueying1993/article/details/80064935

2.

因为 matplotlib比较简单,就选择它中的库函数读取图像,并将图像作为矩阵处理,最大程度对接matlab,

下面是一段简单的将一幅灰度图像二值化的操作:

import matplotlib.pyplot as plt
import numpy as np

img=plt.imread('gray_3.jpg')

plt.imshow(img,cmap='Greys_r')
plt.axis('off')
plt.show()

binary_img=np.zeros(img.shape)
for i in range (1,img.shape[0]):
    for j in range (1,img.shape[1]):
        signal_pixel=img[i,j]
        if signal_pixel>160:
            binary_img[i,j]=1
        else:
            binary_img[i,j]=0

plt.imshow(binary_img,cmap='Greys_r')
plt.axis('off')
plt.show()

注意:1.显示灰度图像时需要添加 cmap='Greys_r' ;2.这里将图像的每一个像素作为矩阵的每一个元素处理;

3.这一段程序的速度似乎比实现相同功能的matlab代码速度要慢呀;

matplotlib配合numpy使用,才能对单个像素进行操作;另外matplotlib中只有简单的读入图像、显示、保存、计算的图像的宽高等基本函数,并没有一些常见的图像处理算法的实现,比如计算连通域等。。。。。

3.

通过对比,opencv相对于skimage用的更广泛一些,所以先选择opencv库用用,因为anaconda2  spyder(python2.7)不包含

opencv库,需要自己配置,下面介绍在anaconda2中配置opencv的方法:

通过搜索,网上介绍了两种配置opencv的方法,一种是用conda install方式:

参考:https://anaconda.org/menpo/opencv

打开Anaconda Prompt,输入命令行:

conda install -c menpo opencv

该方法试了几次都没有成功;

另一种方法参考:https://blog.csdn.net/u010414589/article/details/52104442

https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_setup/py_setup_in_windows/py_setup_in_windows.html#install-opencv-python-in-windows

步骤一:因为anaconda中已经安装好了numpy库和matplotlib库,因此这里直接下载opencv2.XX,并提取文件,python2.X对应opencv2.x

步骤二:将D:\yanxiaopan\install\install_opencv2.4.10\opencv\build\python\2.7\x64文件夹下的cv2.pyd文件拷贝到D:\yanxiaopan\install\install_anaconda2\Lib\site-packages

import cv2
print cv2.__version__

至此opencv 配置成功。

猜你喜欢

转载自blog.csdn.net/yanxiaopan/article/details/87618440