老狗识屠 2017-03-11 02:04 采纳率: 100%
浏览 1219
已采纳

求前辈指点:vs2015利用opencv库时存储图像问题

代码如下:
#include
using namespace std;

void main()
{
int r,c,i,j;
cv::Mat image1 = cv::imread("H:\C++projects\improcess_hw\2.jpg", CV_LOAD_IMAGE_GRAYSCALE);
cv::imwrite("Photp_Cal_1.jpg",image1);
cv::namedWindow("IMAGE1");
cv::imshow("IMAGE1", image1);
cv::Mat image2 = cv::imread("H:\C++projects\improcess_hw\1.jpg", CV_LOAD_IMAGE_GRAYSCALE);
r = image2.rows;
c = image2.cols;
for (i = 0;i < r;i++)
for (j = 0;j < c;j++)
image2.at(i,j)= 255-(image2.at(i, j));
cv::imwrite("Photp_Cal_2.jpg",image2);
cv::namedWindow("Image2");
cv::imshow("Image2", image2);
cv::waitKey();
}
提示错误
图片说明
如果保存为bmp就没有毛病,刚开始学,希望有前辈能够指点一点

  • 写回答

1条回答 默认 最新

  • 战在春秋 2017-03-11 07:13
    关注

    查官方文档
    关于imread,imwrite函数支持的文件类型是这样描述的:

    • Windows bitmaps - *.bmp, *.dib (always supported)
    • JPEG files - *.jpeg, *.jpg, *.jpe (see the Notes section)

    再看Notes section:

    On Microsoft Windows* OS and MacOSX*, the codecs shipped with an OpenCV image (libjpeg, libpng, libtiff, and libjasper) are used by default. So, OpenCV can always read JPEGs, PNGs, and TIFFs.

    从而得出结论,opencv需要包含libjpeg,这就涉及到编译opencv的问题,你可以用opencv build libjpeg为关键字搜索相关帮助。

    折腾,只有折腾才能进步......。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料