流浪计划 2023-06-17 21:57 采纳率: 50%
浏览 12

matlab的app设计界面运行失败

为什么设计好app页面,运行过程中的imwrite函数不能正常运行,提示
“错误使用imwrite(line 541)
无法打开要写入的文件“process\灰度图.jpg”。您可能没有写入权限。”

  • 写回答

2条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-06-19 01:53
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:
    • 你看下这篇博客吧, 应该有用👉 :matlab中imwrite函数
    • 除此之外, 这篇博客: Mat函数的使用中的 输出图像到文件:imwrite()函数 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

      函数声明:bool imwrite(const string& filename,InputArray img,const vector& params = vector());
      参数1:文件名,要加上后缀。
      参数2:Mat类型的数据
      参数3:特定格式保存的参数编码,一般不需要填写。
      如果填写的话要遵循一下规则:

      • 对于 JPEG 格式的图片,这个参数表示从 0 到 100 的图片质量(CV_IMWRITE_JPEG_QUALITY),默认值是95。
      • 对于 PNG 格式的图片,这个参数表示压缩级别(CV_IMWRITE_PNG_COMPRESSION)从 0 到 9。较高的值意味着更小的尺寸和更长的压缩时间,默认值是3。
      • 对于PPM,PGM,或PBM格式的图片,这个参数表示一个二进制格式标志(CV_IMWRITE_PXM_BINARY),取值为0或1,默认值是1。

      复制对象:

      1. 完全复制,复制对象的头和数据部分
        M.clone()
        A.copyTo(M)
      2. 部分复制,只复制对象的头和指针
        imread(imgFilePath);

      Mat对象的使用

      1. 输出的内存是自动分配的
      2. 赋值操作和拷贝构造函数只会复制头部份
      3. clone和copyTo是完全复制

      对象的创建:
      Mat smallDst(100,100,CV_8UC3,Scalar(0,0,255));
      其中前两个是行和列,8代表每个通道8位,U代表无符号,c代表char类型,3代表3通道,第四个参数和第三个参数对应。

      创建一个相同大小的图片框,并设置图片颜色

      #include <opencv2/opencv.hpp>
      #include <iostream>
      
      using namespace std;
      using namespace cv;
      
      int main() {
          Mat src;
          src = imread("C:/Users/fh/Pictures/001.png");  
      
          if (src.empty()) {
              printf("could not load image...");
              return -1;
          }
          namedWindow("img", WINDOW_AUTOSIZE);                  
          imshow("img", src);                                    
      
      	Mat dst;
      	dst = Mat(src.size(), src.type());
      	dst = Scalar(127, 0, 255);
      	namedWindow("src", WINDOW_AUTOSIZE);
      	imshow("src", dst);                              
          waitKey(0);                                    
      
          return 0;
      }
      
      
      #include <opencv2/opencv.hpp>
      #include <iostream>
      
      using namespace std;
      using namespace cv;
      
      int main() {
      	Mat src;
      	src = imread("C:/Users/fh/Pictures/001.png");
      
      	if (src.empty()) {
      		printf("could not load image...");
      		return -1;
      	}
      	//namedWindow("img", WINDOW_AUTOSIZE);
      	//imshow("img", src);
      
      	Mat dst;
      	//dst = Mat(src.size(), src.type());
      	//dst = Scalar(127, 0, 255);
      	//dst = src.clone();			// 拷贝图片
      	//src.copyTo(dst);				// 拷贝图片
      	cvtColor(src, dst, COLOR_BGR2GRAY);
      	printf("原图像通道:%d\n", src.channels());
      	printf("灰度图像通道:%d\n", dst.channels());
      	//查看单行像素
      	const uchar* firstRow = src.ptr<uchar>(0);
      	const uchar* firstRowG = dst.ptr<uchar>(0);
      	printf("原图单行像素:%d\n", *firstRow);
      	printf("灰度单行像素:%d\n", *firstRowG);
      	//namedWindow("src", WINDOW_AUTOSIZE);
      	//imshow("src", dst);
      	//创建新的一个小的图像可以用来测试逻辑
      	Mat smallDst(100,100,CV_8UC3,Scalar(0,0,255));
      	namedWindow("smallDst", WINDOW_AUTOSIZE);
      	imshow("smallDst", smallDst);
      
      	waitKey(0);
      
      	return 0;
      }
      
      

    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 6月17日

悬赏问题

  • ¥15 python随机森林对两个excel表格读取,shap报错
  • ¥15 基于STM32心率血氧监测(OLED显示)相关代码运行成功后烧录成功OLED显示屏不显示的原因是什么
  • ¥100 X轴为分离变量(因子变量),如何控制X轴每个分类变量的长度。
  • ¥30 求给定范围的全体素数p的(p-2)/p的连乘积值
  • ¥15 VFP如何使用阿里TTS实现文字转语音?
  • ¥100 需要跳转番茄畅听app的adb命令
  • ¥50 寻找一位有逆向游戏盾sdk 应用程序经验的技术
  • ¥15 请问有用MZmine处理 “Waters SYNAPT G2-Si QTOF质谱仪在MSE模式下采集的非靶向数据” 的分析教程吗
  • ¥15 adb push异常 adb: error: 1409-byte write failed: Invalid argument
  • ¥15 nginx反向代理获取ip,java获取真实ip