wxw5201 2019-06-13 16:46 采纳率: 0%
浏览 242

为什么我的图片显示成灰色,鼠标一直显示忙碌呢?

各位大神,大家好
我使用opencv的imshow显示图片,但是窗口能正常显示,但是图片一直为灰色,而且鼠标显示忙碌,然后会自动退出。在网上查询许久不得要领,小白一枚,劳烦各位帮忙看看是什么原因,谢谢orz

#include<opencv2\opencv.hpp>
#include "../include/Pipeline.h"

using namespace pr;
using namespace cv;
void TEST_PIPELINE(){
    /* 定义模型 */
    pr::PipelinePR prc("../lpr/model/cascade.xml",
                      "../lpr/model/HorizonalFinemapping.prototxt","../lpr/model/HorizonalFinemapping.caffemodel",
                      "../lpr/model/Segmentation.prototxt","../lpr/model/Segmentation.caffemodel",
                      "../lpr/model/CharacterRecognization.prototxt","../lpr/model/CharacterRecognization.caffemodel"                     //"../Ipr/model/SegmentationFree.prototxt", "../Ipr/model/SegmentationFree.caffemodel"
                    );

    Mat image = imread("C:\\Users\\wysdy\\Desktop\\HyperLPR-master\\Prj-Win\\1.jpg");
    imshow("image",image);
    waitKey(25);

    /* 申明一个存储该图片车牌信息检测结果的列表,读取结果 */
    std::vector<pr::PlateInfo> res = prc.RunPiplineAsImage(image);
    float conf = 0 ;
    /* 开始对每一个结果进行遍历 */
    for(auto st:res) {
        if(st.confidence>0.75) {
            std::cout << st.getPlateName() << " " << st.confidence << std::endl;
            conf += st.confidence;
            //waitKey(0);
        }
    }
    std::cout<<conf<<std::endl;
    system("pause");


}
int main()
{

   TEST_PIPELINE();


    return 0 ;


}
  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-10 08:16
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    你遇到的问题可能是因为以下一些原因:

    1. 图像文件格式不正确:确保你的图像文件是JPG、PNG或BMP格式。
    2. 图像大小不匹配:确认输入图像的尺寸与OpenCV支持的图像大小相匹配(例如,如果你正在处理的是640x480像素的图像,那么你应该将其转换为OpenCV可以识别的图像类型)。
    3. 图像颜色模式不匹配:确保你的图像使用了正确的颜色模式(例如,如果图像是RGB,则应该将其设置为BGR)。这将有助于避免出现色彩失真问题。
    4. 模型参数错误:检查你的模型参数是否正确设置,并且它们符合你的硬件环境和数据集。

    解决上述问题的方法可能包括调整图像大小以适应OpenCV支持的图像尺寸,确保所有图像的颜色模式一致,以及检查并修改模型参数以满足你的需求。

    评论

报告相同问题?