Opencv用Python实现灰度图
opencv新人一枚,作比赛需要用到灰度图的相似度比较。但是折腾了一天还是没有写出来大概了解了一下opencv在python下的API,但是还是有许多不明白的地方。我的参...
opencv新人一枚,作比赛需要用到灰度图的相似度比较。
但是折腾了一天还是没有写出来
大概了解了一下opencv在python下的API,但是还是有许多不明白的地方。
我的参考资料:
http://answers.opencv.org/questi ... lar-two-images-are/
首先,我在网站上找到了一个两个彩图相似度比较的python实现。
但是当我将它改写成灰度图版本的时候总是报错,改过一番之后不报错也不会输出任何东西。
下面是我尝试的灰度图版本:
import cv2.cv as cv
def compute_histogram(src, bins = 255 ):
#create images
#hsv = cv.CreateImage(cv.GetSize(src), 8, 3)
#hplane = cv.CreateImage(cv.GetSize(src), 8, 1)
#splane = cv.CreateImage(cv.GetSize(src), 8, 1)
#plane = cv.CreateImage(cv.GetSize(src), 8, 1)
#planes = [hplane, splane]
#cv.CvtColor(src, hsv, cv.CV_BGR2HSV)
#cv.Split(hsv, hplane, splane, vplane, None)
#compute histogram (why not use v_plane?)
hist = cv.CreateHist( (255,0), cv.CV_HIST_ARRAY,ranges = ((0, 255) ), uniform = True)
cv.CalcHist(src, hist) #compute histogram
cv.NormalizeHist(hist, 1.0) #normalize hist
return hist
start = time.time()
src1 = cv.LoadImage("~/Desktop/database/target.JPG", 0)
src2 = cv.LoadImage("~/Desktop/database/IMG_2535.JPG", 0)
hist1= compute_histogram(src1)
hist2= compute_histogram(src2)
sc= cv.CompareHist(hist1, hist2, cv.CV_COMP_CHISQR)
print sc
求教各路大大,应该如何实现python版本的灰度图图片相似度比较呢??
target
image 展开
但是折腾了一天还是没有写出来
大概了解了一下opencv在python下的API,但是还是有许多不明白的地方。
我的参考资料:
http://answers.opencv.org/questi ... lar-two-images-are/
首先,我在网站上找到了一个两个彩图相似度比较的python实现。
但是当我将它改写成灰度图版本的时候总是报错,改过一番之后不报错也不会输出任何东西。
下面是我尝试的灰度图版本:
import cv2.cv as cv
def compute_histogram(src, bins = 255 ):
#create images
#hsv = cv.CreateImage(cv.GetSize(src), 8, 3)
#hplane = cv.CreateImage(cv.GetSize(src), 8, 1)
#splane = cv.CreateImage(cv.GetSize(src), 8, 1)
#plane = cv.CreateImage(cv.GetSize(src), 8, 1)
#planes = [hplane, splane]
#cv.CvtColor(src, hsv, cv.CV_BGR2HSV)
#cv.Split(hsv, hplane, splane, vplane, None)
#compute histogram (why not use v_plane?)
hist = cv.CreateHist( (255,0), cv.CV_HIST_ARRAY,ranges = ((0, 255) ), uniform = True)
cv.CalcHist(src, hist) #compute histogram
cv.NormalizeHist(hist, 1.0) #normalize hist
return hist
start = time.time()
src1 = cv.LoadImage("~/Desktop/database/target.JPG", 0)
src2 = cv.LoadImage("~/Desktop/database/IMG_2535.JPG", 0)
hist1= compute_histogram(src1)
hist2= compute_histogram(src2)
sc= cv.CompareHist(hist1, hist2, cv.CV_COMP_CHISQR)
print sc
求教各路大大,应该如何实现python版本的灰度图图片相似度比较呢??
target
image 展开
3个回答
2020-11-19
展开全部
from PIL import Image
import os
input_dir='C:/Users/DELL/Desktop/shuju/caomei/'
output_dir='C:/Users/DELL/Desktop/image/caomei/'
a=os.listdir(input_dir)
print(a)
for i in a :
print(i)
I=Image.open(input_dir+i)
L=I.convert('L')
L.save(output_dir+i)
import os
input_dir='C:/Users/DELL/Desktop/shuju/caomei/'
output_dir='C:/Users/DELL/Desktop/image/caomei/'
a=os.listdir(input_dir)
print(a)
for i in a :
print(i)
I=Image.open(input_dir+i)
L=I.convert('L')
L.save(output_dir+i)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
灰度图批量转换可以参考本人github项目:网页链接
有帮助的话记得给个star
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
请题主把两张图上传上来。具体方法:是上传到百度网盘然后链接贴过来
更多追问追答
追问
没有上传原文件,但是把图片已经上传
追答
主要是少了一些方括号。
我参考的是opencv安装目录下/samples/python/demhist.py
代码见附件。
结果是:0.0298942100365
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询