老狗识屠 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为关键字搜索相关帮助。

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

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

报告相同问题?

悬赏问题

  • ¥65 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥15 latex怎么处理论文引理引用参考文献
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?
  • ¥15 乘性高斯噪声在深度学习网络中的应用