使用 c++ 显示图像
Showing an image using c++
我写了这段代码来用 c++ 显示图像。
#include <opencv2/core/core.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>
#include <string>
using namespace std;
using namespace cv;
int main(int x,char*y)
{
string Image_Name = y[1];
Mat image=imread(Image_Name);
if (image.empty())
{
cout << "This is invalid input" << endl;
return -1;
}
namedWindow("Lenna", WINDOW_NORMAL);
imshow("Lenna",image);
waitKey(0);
return 0;
}
当我尝试运行它时,编译器向我显示这些错误:
"严重性代码描述项目文件行 错误 C2440"正在初始化":无法从"字符"转换为 'std::basic_string,std::allocator>' OpencvTest e:\programming c\显示图像\openCVtest\来源.cpp 12 "
和:
"严重性代码描述项目文件行错误(活动)否 存在合适的构造函数以从"char"转换为 "标准::basic_string, std::allocator>" OpencvTest e:\programming C\Show an 图像\OpencvTest\Source.cpp 12"
任何人都可以帮助我解决此错误吗?
小错误:
int main(int x,char*y)
应改为
int main(int x, char*y[])
或
int main(int x, char **y)
实际上,没有构造函数可以从char
转换为std::string
,只能从char*
或char
和整数计数转换。
请参阅 http://en.cppreference.com/w/cpp/language/main_function 和 http://en.cppreference.com/w/cpp/string/basic_string/basic_string 以供参考。
此外,这两个参数也有标准名称:argc
- 参数计数和argv
- 参数值。最好坚持标准。
您还需要检查argc
是否等于 2,否则没有第二个参数可供读取。
编辑:检查argc >= 2
比严格argc == 2
更有意义,在这种情况下,程序将忽略第二个参数之后的参数。
相关文章:
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 如何使用OpenCV将RBG图像转换为HSV,并将H、S和V值保存为C++中的3个独立图像
- OpenCV EqualizeHist()从彩色图像创建黑白图像
- 将"打开的CV图像"中的"颜色"转换为整数格式
- 平均图像时图像损坏
- 在C++中使用GDAL可以将图像的像素坐标转换为lat,long吗
- 如何将图像传输到c++(dll)中的缓冲区,然后在c#的缓冲区中读/写
- Vulkan验证层不断在VkQueuePresentKHR()上抛出图像布局错误
- 使用FFMPEG将RGB图像序列保存到.mp4时出现问题
- 将RGB图像保存为PPM格式
- 将图像添加到资源文件夹UWP C++
- 彩色图像的卤化物处理平均值
- C++射线示踪剂ppm表示没有足够的数据来显示图像
- 重新定位图像时如何前进到下一个内存块
- 如何使用按钮更新GTK3图像以使用C++从相机捕获图片
- 为什么 BMP 图像上的 imwrite 会卡住/不返回?
- Gstreamer:每 5 秒使用多文件墨水保存图像/jpeg
- 如何使用CImg打开图像?
- 如何使用 OpenCV 解码在两个 UWP 应用之间发送的图像字节?
- 使用 CUDA 和纹理进行图像减法