【发布时间】:2017-08-03 11:13:27
【问题描述】:
我正在处理一些图像。我得到了一个abc.tif 图像(彩色图像)。我是这样读的:
Mat test_image=imread("abc.tif",IMREAD_UNCHANGED);
我对其执行一些操作并将其转换为仅包含两个值 0 和 255 的二进制图像(使用阈值),它们存储在 img 图像中,其中 img 创建如下:
Mat img(584,565,CV_8UC1); %//(so now img contains only 0 and 255)
我使用imwrite("myimage.jpg",img);保存这张图片
我想将myimage.jpg 图像与另一个二进制图像manual.gif 逐像素进行比较,以检查一个图像是否与另一个图像重复,但您可以注意到问题是 OpenCv 不支持 .gif 格式,所以我需要转换将其转换为 .jpg ,因此图像会发生变化,现在这两个图像都将得出结论,因为即使它们相同,也可能是不同的图像。现在要做什么?
实际上我正在研究视网膜血管分割,这些图像可以在 DRIVE 数据库中找到。
我收到了这些图片。原图:
我对其执行一些操作并从中提取血管,然后创建一个二进制图像并存储在一些 Mat 变量 img 中,如前所述。现在我得到了另一个无法加载的图像(.gif 图像),如下所示:
现在我想将我的 img 图像(二进制)与我无法加载的给定 .gif 图像(上图)进行比较。
【问题讨论】:
-
只需使用 IrfanView 等外部工具将您的 GIF 转换为 PNG,OpenCV 就会读取它。此外,不要将结果保存为 JPG,因为这是一种会改变您的值的有损格式。也将其另存为无损 PNG。
-
或者使用ImageMagick,命令就这么简单
convert input.gif output.png -
感谢您的宝贵意见!
-
很酷的问题!是为了认证吗?这些网络在分支数量方面有多相似?
-
是的,这是一种身份验证。 80-85% 相似。