首页 技术 正文
技术 2022年11月16日
0 收藏 451 点赞 3,997 浏览 1345 个字

我在实现《OpenCV2计算机视觉编程手册》第2章 2.2 节 存取像素值 中的椒盐噪声例子中遇到的程序错误。

原始输入程序:

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv.hpp>
//2.2节中的程序,但是出现问题
using namespace cv;
void salt(Mat & , int );
int main(){
Mat image = imread("C:\\Baboon.jpg");
salt(image,2000);
namedWindow("Miffy");
imshow("Miffy",image);
waitKey(0);
return 1;
}
void salt(Mat &image, int n){
for (int k = 0; k < n; k++){
int i=rand();
int j=rand();
if (image.channels()==1){
image.at<uchar>(j,i)=255;
}else if (image.channels()==3){
image.at<Vec3b>(j,i)[0]=255;
image.at<Vec3b>(j,i)[1]=255;
image.at<Vec3b>(j,i)[2]=255;
}
}
}

程序出现的问题如下:

sample_1.exe 中的 0x7534c6e3 处有未经处理的异常: Microsoft C++ 异常: 内存位置 0x0012f52c 处的 cv::Exception。

OpenCV中遇到Microsoft C++ 异常 cv::Exception

在找BUG的时候,毫无头绪,在网上去搜索相关的问题,发现这个问题主要出现的是指针的问题。

自己分析程序,感觉rand()上面可能会出现问题。

—— rand()函数

int rand(void);从srand (seed)中指定的seed开始,返回一个[seed,RAND_MAX(0x7fff)]间的随机整数。

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv.hpp>
//修改后程序
using namespace cv;
void salt(Mat & , int );
int main(){
Mat image = imread("C:\\Baboon.jpg");
salt(image,2000);
namedWindow("Miffy");
imshow("Miffy",image);
waitKey(0);
return 1;
}
void salt(Mat &image, int n){
int im_rows=image.rows;
int im_cols=image.cols;
for (int k = 0; k < n; k++){
int i=rand()%im_cols;
int j=rand()%im_rows;
if (image.channels()==1){
image.at<uchar>(j,i)=255;
}else if (image.channels()==3){
image.at<Vec3b>(j,i)[0]=255;
image.at<Vec3b>(j,i)[1]=255;
image.at<Vec3b>(j,i)[2]=255;
}
}
}

OpenCV中遇到Microsoft C++ 异常 cv::Exception

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,989
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,503
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,348
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,131
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,765
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,842