我尝试比较两个图像,一个是.png
,另一个是.jpg
。所以我需要将.png
文件转换为.jpg
,以便为SSIM获得更接近的值。下面是我尝试的代码,但我得到了以下错误:
属性错误:'tuple'对象没有'dtype'属性
image2 = imread(thisPath + caption)
image2 = io.imsave("jpgtest.jpg", (76, 59))
image2 = cv2.cvtColor(image2, cv2.COLOR_BGR2GRAY)
image2 = resize(image2, (76, 59))
imshow("is it a jpg", image2)
cv2.waitKey()
4条答案
按热度按时间mefy6pfw1#
在演示如何将
.png
的图像转换为.jpg
之前,我想指出的是,你应该在使用的库上保持一致。目前,你正在混合scikit-image和opencv。最好选择一个库并坚持使用它,而不是用scikit阅读图像,然后用opencv转换为灰度。要使用OpenCV将
.png
转换为.jpg
图像,您可以使用cv2.imwrite
。注意,对于.jpg
或.jpeg
,要保持最高质量,您必须指定[0..100]
的质量值(默认值为95)。只需执行以下操作:oug3syen2#
函数
skimage.io.imsave
要求你给予它一个文件名和一个数组,你要保存在这个文件名下。例如:其中
image
是numpy数组。您在此处使用错误:
你要把
imsave
函数的输出赋值给image2
,我认为这不是你想要做的。您可能不需要将图像转换为JPG,因为skimage库已经自己处理了所有的转换。您通常只需要加载
imread
的图像(不管它们是PNG还是JPG,因为它们都是用numpy数组表示的),然后执行所有必要的计算。hsgswve43#
将文件夹中的所有.png文件转换为.jpg文件的Python脚本
n1bvdmb64#
简单地使用opencv的cvtColor。假设使用cv2.imread()读取图像;图像颜色通道排列为BGR。
从PNG转换为JPG
从JPG转换为PNG