添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

对一张图片不用opencv自带的霍夫函数,自己改写时用的是位图,但遇到一个问题。

这是原图:

IplImage *src = cvLoadImage("123.jpg", 0);
IplImage格式的
后面的数组处理时用的是 
BYTE *pImg
//pImg ----待检测图片指针 

问题是
C++中有byte类型吗(显然是没有),Qt中定义的类型也没有byte类型
而且 
src->imageData;
或者
src->imageDataOrigin
返回的都是 char 类型的数据
如果一般出现以上的问题:解决方法如下:

window下C++编程转到linux系统下,若error: ‘BYTE’ was not declared in this scope

定义字节符:typedef unsigned char BYTE;

 

error: ‘LONGLONG’ does not name a type

定义字节符:typedef int64_t LONGLONG;

回到上面的问题:返回的是一个char类型的数据,现在要转为一个uchar的

已知:

char 是有符号的
 unsigned char 是无符号的,里面全是正数 
两者都作为字符用的话是没有区别的,
但当整数用时有区别: 
char 整数范围为-128到127( 0x80__0x7F), 而unsigned char 整数范围为0到255( 0__0xFF ) 有时候想把整数数值限在255范围内,
也用unsigned char,这个类型在嵌入式用的多
所以,解决的方法可以是:
先得到一个char的数
然后判断一下正负
如果是正的。就 加128 得到对应的uchar的数值
如果是负的,就取绝对值,再加128.
目前还没有想到更好的方法,欢迎讨论
                                     2015.5.6   22.48
/************************************************************************************************************************************************/
错了,修改一下,
char转为uchar:应该是-128-----127直接加上128即可。
上面的方法应该不对
  
2015.5.7.
10.20





                    今天在改进霍夫算法时遇到的问题:对一张图片不用opencv自带的霍夫函数,自己改写时用的是位图,但遇到一个问题。这是原图:IplImage *src = cvLoadImage("123.jpg", 0);IplImage格式的后面的数组处理时用的是 BYTE *pImg//pImg ----待检测图片指针 问题是C++中有byte类型吗(显然是没有),Qt中定义的类型也没有b
				
QT界面开发时编译报错"xxx"was not declared in this scope 报错信息: 中文意译就是未在作用域中声明“xxx”,意思就是你使用这个变量或者函数没被定义。 产生原因: 1.写错变量或者函数名字; 2.忘记定义该变量或函数; 3.是使用的变量或函数作用域不正确 1.检查这个变量或函数的名字定义书写是否正确,最频繁的错误就是书写错误,大小写(如Path写成path),拼写多了一个字母或者少写字母(如administrator写成adminstrator),单词功力浅或者
写代码的时候疏忽了,导致一些变量直接使用但没有定义。只要对应定义相应的函数或变量即可。 2.拼写错误 写代码的时候,敲错了字符,比如sum敲成了Sum, average敲成averge等。对应修改即可。 3.作用域不正确 在超出变量和函数的作用域部分使用了该变量或函数。需要通过定义位置,或增加声明的手段,加大变量...
1 .谈到字节序,那么会有朋友问什么是字节序 很简单:【例如一个16位的整数,由2个字节组成,8位为一字节,有的系统会将高字节放在内存低的地址上,有的则将低字节放在内存高的地址上,所以存在字节序的问题。】2 .那么什么是高字节、低字节? 也相当简单:【一个16进制整数有两个字节组成,例如:0xA9。 高字节就是指16进制数的前8位(权重高的8位),如上例中的A。 低字节就是指16进制数的后8
Qt+VS开发环境下,经常出现此类问题: 有时候,明明存在ui_xxx.h文件,或者,根本不存在该ui_xxx.h文件,又或者,把对应的xxx.ui从项目中排除后,再添加进项目里面,就提示“无法识别”该ui_xxx.h文件。此时,对项目重新生成,或者重新编译,清理,再build,没有丝毫卵用。。。 第一种:若该项目是,从网络下载别人的项目: 首先检查该项目的平台工具集是否与你...
windows下c++编译出现错误:error C2872: ‘byte’: ambiguous symbol 原因 c++17引入了类型 std::byte,如果 代码中使用了using namespace std;则会出现编译错误。 解决方案: 去掉 using namespace std;
Qt与vs编写的dll通讯遇中的坑一、前言:二、新建vs的dll三、原因分析和解决方法四、new对象产生的坑(遗留的bug,还没有找到解决方法)五、总结 一、前言: 因为实际开发过程中遇到Qt调用vs编写的sdk,故用vs封装成纯C++的dll提供Qt使用,因为懒得迁移整个工程到Qt环境,毕竟没学过Qt,光是搭建环境,怎么使用creator就很多时间折腾了,时间成本很高。 二、新建vs的dll QByteArray类提供了一个字节数组。 QByteArray可用于存储原始字节(包括'\ 0')和传统的8位'\ 0'终止字符串。使用QByteArray比使用const char *方便得多。在幕后,它始终确保数据后面跟着'\ 0'终止符,并使用隐式共享(写时复制)来减少内存使用并避免不必要的数据复制。 除了QByteArray之外,Qt还提供了QString类来存储字符串数据。对于大多数目的而言,QString是常用的类。它存储16位Unico
这个错误通常是因为没有包含正确的头文件或库文件,或者函数名拼写错误导致的。如果您使用的是 ROS,您可能需要包含 `ros/ros.h` 头文件。如果您使用的是 OpenCV,您可能需要包含 `opencv2/opencv.hpp` 头文件。如果您是使用某个库提供的 `startCameraServer` 函数,您需要确保该库已正确安装并包含在您的代码中。 另外,请确保函数名拼写正确,以及函数的参数和返回值类型正确。如果问题仍然存在,您可以提供更多的上下文信息,以便我更好地帮助您解决问题。
jessezappy: 没写完把?你也没说 Windows 17763 is deprecated You can still use Docker Desktop but you are on Windows 17763. You will not be able to install further major updates (3.6.0 and above). We recommend upgrading to the latest version of Windows. 怎么避免 Windows下 SSH 通过密钥登录 Linux 服务器 一道特别的菜: 请问怎么登陆啊