OpenCV VisualStudio,C 代码错误尝试访问像素
OpenCV + visualStudio , C++ code error trying to access pixels
我是乔,我是该网站的新成员。让我们走到这一点...我在Visual Studio上使用OpenCV库在C 中开始编程,但我对Image的像素有一个疑问。我编写了一个代码来计算Alpha通道的平均值(除B,G,R强度的值外,Pixel的Foruth组件)。在此处输入图像描述我陷入错误,我不知道该如何解决。这是我的代码
#include "stdafx.h"
#include "opencv2highguihighgui.hpp"
#include "opencv2corecore.hpp"
#include "opencv2opencv.hpp"
using namespace cv;
using namespace std;
int main() {
Mat image;
image = imread("C:/Users/Joe/Desktop/prova/paesaggioLuminoso.jpg", 1);
namedWindow("Picture", WINDOW_AUTOSIZE);
imshow("Picture", image);
waitKey(0);
int averageAlpha = 0;
int partial = 0;
for (int i = 0; i < image.rows; i++) {
for (int j = 0; j < image.cols; j++) {
partial = partial +image.at<Vec4b>(i, j)[3];
if (i == image.rows - 1 && j == image.cols - 1) {
averageAlpha = partial / (image.rows * image.cols);
cout << "Average of alpha channel is " << averageAlpha << endl;
}
}
}
return 0;
}
请注意,如果我尝试计算B强度的平均值(或绿色或红色),我的程序可以正确运行。
但是,使用此第四个通道,我有此错误消息:在第二次progetto opencv.exe中的0x00007FFC47603FB8的未经手法异常:Microsoft C 例外:CV ::异常位置0x00000000162E2FF3E.
断言失败(((unsigned)(i1 * datatype&lt; _tp> :: channels)&lt;(unsigned)(size.p1 * channels())(size.p1 * channels()))cv :: mat :: mat :: at :: AT,file C:joe desktop joe opencv opencv build include opencv2 core core mat.inl.hpp,行1095
感谢您的帮助!祝你有美好的一天 !
编辑:这是我在评论中提到的错误
带有正确代码的Visual Studio中的错误
其他错误
在此处输入图像描述
您正在以flag'1'为等。imgcodecs.hpp
和imread_color删除alpha频道,请参阅此信息https://docs.opencv.org/3.1.0/d4/da8/group__imgcodecs.html#ga61d9b0126a3e57d9277ac4832779999c80
所以你应该做
image = imread("C:/Users/Joe/Desktop/prova/paesaggioLuminoso.jpg", IMREAD_UNCHANGED);
- 访问随机图像像素的快速方法,最多一次
- OpenCV 像素访问点与 at() - 不同的值
- 如何使用 freetype2 访问单色位图中的像素状态
- 访问和更改基于另一个图像的像素颜色-opencv c++
- OpenCV 访问像素的颜色值
- 如何在OpenCV Cuda(GpuMat)中访问像素
- 使用glgetTeximage()访问像素
- 如何在opencv C++中访问特定的超像素
- OpenCV VisualStudio,C 代码错误尝试访问像素
- 从SDL_Texture访问像素颜色
- 不能通过基于指针的访问像素强度来分割 RGB 图像
- 访问 openCV 中某个图像中所有像素的 RGB 值
- 如何使用OpenCV快速访问像素值C++
- 访问图像像素;MatIterator_<> 和 Mat::at 运算符的比较
- 访问像素值,而不在内存中加载大图像的图像
- 使用 BMP 作为高度图.如何访问像素颜色以设置高度
- 使用Mat OpenCV访问像素
- 使用OpenCV多通道Mat沿着通道方向访问像素
- 使用OpenCV点击图像中的一个点来访问像素值
- 无法从灰度图像访问像素值