图像处理的Python问题,怎么解决

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了图像处理的Python问题,怎么解决相关的知识,希望对你有一定的参考价值。

参考技术A imtools.py里面也要有numpy 的引用才对
def histeq(im,nbr_bins=256):
"""对一幅灰度图像进行直方图均衡化"""

#计算图像的直方图
imhist,bins = histogram(im.flatten(),nbr_bins,normed=True)
cdf = imhist.cumsum() #累计分布函数
cdf = 255 * cdf / cdf[-1] #归一化

#使用累计分布函数的线性插值,计算新的像素
im2 = interp(im.flatten(),bins[:-1],cdf)

return im2.reshape(im.shape),cdf

以上代码我定义在imtools.py文件里并且放在了python2.7里

然后我在num.py里引用他

Python code?
1
2
3
4
5
6
7
8
9
10

from PIL import Image
from pylab import *
from numpy import *
import imtools

im= array(Image.open('E:\\daima\\pydaima\\shijue\\tupian1\\gang2.jpg').convert('L'))

im2,cdf =imtools.histeq(im)

出现以下错误:
Traceback (most recent call last):
File "<pyshell#56>", line 1, in <module>
a=imtools.histeq(im)
File "E:\daima\pydaima\shijue\imtools.py", line 32, in histeq
NameError: global name 'histogram' is not defined

python3连接MSSQL数据库 中文乱码怎么解决

以前用php连mssqy时也经常出现中文乱码(中文变问号)的问题,那时就明白是编码没设置好导航,现在的Python连mssql数据库也同样出现这问题,问题一样,解决的办法当然也会相似,现在我们来看看解决方法。

python一直对中文支持的不好,最近老遇到编码问题,而且几乎没有通用的方案来解决这个问题,但是对常见的方法都试过之后,发现还是可以解决的,下面总结了常用的支持中文的编码问题(这些方法中可能其中一个就能解决问题,也可能是多个组合)。

(1)、首先,要保证文件的开头要加上编码设置来说明文件的编码

代码如下
复制代码

#encoding=utf-8

(2)、然后,在连接数据的连接参数里加上字符集说明查询出的结果的编码,这个不加的后果可能是查询出的汉字字符都是问号

代码如下
复制代码

conn=pymssql.connect(server=\'.\',user=\'\', password=\'\',database=\'MyTest\',charset=\'utf8\')

(3)、设置python系统的默认编码(对于文件来说,这招几乎屡试不爽,呵呵~~)

代码如下
复制代码

import sys
reload(sys)
sys.setdefaultencoding(\'utf8\')

注意:上述编码是“utf8”,而不是“utf-8”,我也没弄明白,大部分情况下,这个无所谓的,但是这里我试了必须要是“utf8”

一个简单的完整的python连接mssqlserver的例子如下(得安装pymssql包):

代码如下
复制代码

#encoding:utf8
import sys
reload(sys)
sys.setdefaultencoding(\'utf8\')
import pymssql
try:
conn=pymssql.connect(server=\'.\',user=\'\', password=\'\',database=\'MyTest\',charset=\'utf8\')
sql="select * from UserInfo"

cur=conn.cursor()
cur.execute(sql)
data=cur.fetchall()
conn.close()
print data
except Exception,e:
print e

运行结果如下:

代码如下
复制代码

[(u\'20093501\', u\'xb9xf9xbexb8\', u\'u7537 \', 35, u\'xb4xf3xcfxc0\'),
(u\'20093502\', u\'xbbxc6xc8xd8\', u\'u5973 \', 34, u\'xc3xc0xc5xae\'),
(u\'20093503\', u\'xc1xeexbaxfcxb3xe5\', u\'u7537 \', 25, u\'2Bxc7xe0xc4xea\'),
(u\'20093504\', u\'xc8xcexd3xafxd3xaf\', u\'u5973 \', 24, u\'xc6xafxc1xc1\')]
[Finished in 0.2s]

虽然摆脱了问号和乱码的困扰,但这仍不是我们想要的结果,但这个确实是正确的,因为结果是utf8编码。这个现象确实诡异,请教了许多高手,得知,最好的结果就是逐个字段查询,才能显示中文,整个查询的话,会以utf8的格式显示出来。

上述代码中第14行data是整个查询的结果,如果指定某个具体的字段,如print data[0][2](表示取查询结果的第一行第三列的字段的值),则会输出中文。

其实不仅仅是mssqlserver数据库,mysql(需下载MySQLdb包)、sqllite(python自带的文件数据库)、mongodb(需下载PyMongo包)等或者是普通文本文件也是类似的解决方案。
参考技术A 改一下编码

以上是关于图像处理的Python问题,怎么解决的主要内容,如果未能解决你的问题,请参考以下文章

Python作业求助

python高并发怎么解决

Python 爬虫修养-处理动态网页

面试官常问十大经典算法排序(用Python实现)

使用python编程处理大量数据,效率太慢怎么解决

cmd运行pip安装python第三方库报错?怎么解决呢?