图像处理-opencv 操作像素报错 cv::Exception

问题描述

opencv 操作像素报错 cv::Exception

我在网上看到了很多种方法去操作图中的像素,但是无论用哪个都出现这样的错误:
0x7611b727 处有未经处理的异常: Microsoft C++ 异常: 内存位置 0x0039fa94 处的 cv::Exception。
编译是正确的。
我的代码:
#include
#include
#include
#include
#include

int main(int argc, char** argv)
{
//int i = 0;
cv::Mat foreground;
//for(int i = 0; i < 320; i++){
// for(int j = 0; j < 240; j++){
// foreground.atcv::Vec3b(i,j)[0] = 0;
// foreground.atcv::Vec3b(i,j)[1] = 0;
// foreground.atcv::Vec3b(i,j)[2] = 0;

//      foreground.at<uchar>(i,j) = 0;
//  }
//}

for (int j=0; j<foreground.rows; j++)
{
    uchar* data= foreground.ptr<uchar>(j);
    for (int i=0; i<foreground.cols; i++)
    {
        data[i] = 255;
    }
}

//for(int i=0;i<foreground.rows;i++)
//   for(int j=0;j<foreground.cols;j++)
//        foreground.at<uchar>(i,j)=255;
cv::imshow("video", foreground);

return 0;

}

里面种种被注释的也就是网上提到的一些方法。问题到底出在哪里了?没初始化么?可是我现在没注释掉的,就是逐像素赋值啊?我做的是运动目标跟踪,本来是在提取出运动区域以后(一张二值化的图)想根据运动区域的轮廓取出目标来,然后可以算直方图、角点什么的。在整体的代码里面,foreground是已经计算除的前景,所以也是有图像的,一样报错。

另外有哪位大神愿意被骚扰以后碰到问题直接问?求助啊

解决方案

uchar* data= foreground.ptr(j);
在这里下一个断点,调试下,看看指针有没有越界以及其它问题。

解决方案二:

表示不太能看懂越界这样的问题:我截了个运行的图:

显示出现了一些错误的指针,但是我不知道代表在哪里出了问题应该怎么去处理。。

解决方案三:

应该是图像加载出了问题,碰到过这样的错误,仔细检查下图像的路径

解决方案四:

debug调试出错的时候,查看各个变量指针,是否正确。
图中各个变量都正确吗

时间: 2024-12-21 06:01:50

图像处理-opencv 操作像素报错 cv::Exception的相关文章

flume hdfs-flume1.5.2希望将log4j的日志写入hdfs报错Unexpected exception from downstream.

问题描述 flume1.5.2希望将log4j的日志写入hdfs报错Unexpected exception from downstream. 1.conf文件如下 agent1.sources = source1agent1.channels = channel1agent1.sinks = snik1# sourceagent1.sources.source1.type = avroagent1.sources.source1.bind = nnodeagent1.sources.sourc

update无效-mybatis+spring+strust2 后update操作不报错但没起效果

问题描述 mybatis+spring+strust2 后update操作不报错但没起效果 日志如上图 sql语句文件如上图 有两个疑问: 1 做insert操作无任何问题,update 操作不报错,就是更新无效果,数据还是原来的数据. 2 sql语句的配置xml文件中判断了if xxx!=null 但是日志里打印出来的sql还是有null (如图2) 解决方案 你的if条件有问题,如果你的参数里面已经有title等参数,就应该写为title!=null而不是带#的 解决方案二: http://

perl操作MongoDB报错undefined symbol: HeUTF8解决方法_perl

因为shell操作mongo比较麻烦,只好尝试使用perl操作mongo,perl需要操作mongodb必须先安装相应的驱动,大部分人使用cpan安装,个人觉得太麻烦,使用cpanm安装perl模块. 复制代码 代码如下: # cpanm MongoDB --> Working on MongoDB Fetching http://www.cpan.org/authors/id/F/FR/FRIEDO/MongoDB-0.702.1.tar.gz ... OK Configuring Mongo

java-Java里重新封装的接口为什么会报错呢?

问题描述 Java里重新封装的接口为什么会报错呢? 小白一枚,在搞数据库这一块时,对数据的连接与操作想写个类封装进去,执行代码时,调用 ResultSet st=db.execQuery("select * from b.TAB_TRAN_LOG fetch first 10 rows only"); while(st.next()) { System.out.println(st.getString("Trn_CODE")); } 时就会报错,感觉是类的Resul

二维数组-java报错thread &amp;amp;quot;main&amp;amp;quot; java.lang.NullPointerException

问题描述 java报错thread "main" java.lang.NullPointerException import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException; import java.util.Scanner; public class exercise { /** * @param args */ public stat

windows 7环境下eclipse连接hadoop 1.2.1报错解决方法

Win7环境下通过eclipse连接hadoop1.2.1集群时,会遇到如下报错: Exception in thread "main" java.io.IOException: Failed to set permissions of path: \tmp\hadoop-Administrator\mapred\staging\Administrator-519341271\.staging to 0700 此时只需要修改org.apache.hadoop.fs.FileUtil文件

求解救 ,jar都导入了,可是还是报错。

问题描述 求解救 ,jar都导入了,可是还是报错. Exception in thread "main" java.lang.NoClassDefFoundError: org/jvnet/substance/SubstanceLookAndFeel at com.mainframe.MainFrame.main(MainFrame.java:403) Caused by: java.lang.ClassNotFoundException: org.jvnet.substance.Su

java hibernate运行起动报错

问题描述 java hibernate运行起动报错 严重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sess

ssh开发-配置ssh 五个重要的包我都引入了,为什么运行tomcat的时候还是报错

问题描述 配置ssh 五个重要的包我都引入了,为什么运行tomcat的时候还是报错 严重: Exception starting filter struts2java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory at org.apache.struts2.dispatcher.FilterDispatcher.(FilterDispatcher.java:149) at sun.reflect.NativeCo