2017-10-14 48 views
0

我正在阅读有关本地二进制模式,我有以下代码来提取本地二进制模式。打开cv内存图像和保存的图像是不同的

from skimage import feature 
import cv2 as cv 
img = cv.imread("image.jpg",0) 
lbp = feature.local_binary_pattern(img,8,1,"default") 
cv.imshow("LBP",lbp) 

输出图像看起来像这样

enter image description here

原始图像是
enter image description here
但是当我保存图像,并使用下面的代码

from skimage import feature 
import cv2 as cv 
img = cv.imread("image.jpg",0) 
lbp = feature.local_binary_pattern(img,8,1,"default") 
cv.imwrite("new_lbp.jpg",lbp) 
newim = cv.imread("new_lbp.jpg",0) 
cv.imshow("new image",newim) 
载入它

图像看起来像这样。
enter image description here

为什么这两个图像看起来不一样?任何机构都可以帮助我理解它吗?

+0

是不是你应该使用'newim'而'cv.imshow(“新形象”,IMG)' – ZdaR

+0

@ZdaR是的,你是对的,我刚刚编辑了代码。 – Mitiku

+0

然后输出必须改变以及@Mitiku? – ZdaR

回答

-2

opencv的有一些问题,同时节省JPG图像,因此您可以使用其他格式,如BMP

+0

它应该是** png **而不是** bng **。 –

+0

是的,但应该是bmp –

+0

它可以是任何无损图像格式,但由于数据不代表像素值,所以情况并非如此。 – Miki