C++及图像算法基础知识(二)

PS:为了面试准备的,总结的有点粗糙。

 

1.使用了未初始化的局部变量

错误:

 

 

正确:

 

 

2.指针与指向指针的指针

Pointer to an integer value

int* i

 

Pointer to a pointer to an integer value

int** i

 

3.i++ 与++i的区别

use ++i if you don't have a specific reason to use i++

 

对于自定义类型,重载运算符:

 

Foo& Foo::operator++()   // called for ++i
{
   
this->data += 1;
   
return *this;
}

Foo Foo::operator++(int ignored_dummy_value)   // called for i++
{
   
Foo tmp(*this);   // variable "tmp" cannot be optimized away by the compiler
    ++(*this);
   
return tmp;
}

 

i++多了一个拷贝的动作, If the copy constructor is expensive, then this can have a significant performance impact.

 

 

4.C和汇编的区别

C语言可读性好,代码便于维护,便于开发;汇编语言编写的程序不容易看懂,可维护性不好,但是执行效率高。

1)语言效率

汇编语言实质上是机器语言(0,1序列)的助记符

汇编语言与机器语言是一一对应的。但是C语言呢?当然没这么好事了。C语言的语法是固定的,C语言编写的程序要编译成CPU能读懂的机器语言指令,没办法一一对应,所以就需要有编译规则了。

我试验过,用C编写一个简单的程序,比方说只包含一个for循环,编译出的代码和用汇编写的最优代码几乎是一样。但代码量一大,由于受制于规则(不受制也不行呀,否则编不出来),编出来的代码与用汇编语言写出来的代码相比就走了不少“弯路”了。虽然说,现在的很多C编译器在编译的时候都会有优化,但是,不可能做得到效率上等同于与机器语言一一对应的汇编语言的效率。毕竟,汇编语言可以理解为直接就是面对CPU的,只不过是机器语言用助记符代替而矣。 

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C++图像处理方向上具有广泛的应用,下面是一些关于C++图像处理的基础知识和举例: 1. 基础知识: - 像素操作:C++ 可以直接读取和修改图像的像素值,通过访问图像的每个像素点来实现各种操作,如颜色转换、亮度调整等。 - 图像滤波:C++ 提供了各种滤波器(如均值滤波、高斯滤波、中值滤波等)来平滑图像或增强图像的细节。 - 边缘检测:C++ 中有多种边缘检测算法(如Sobel、Canny等)可以帮助检测图像中的边缘特征。 - 形态学操作:C++ 中提供了形态学操作(如膨胀、腐蚀、开运算、闭运算等)来处理图像,用于去除噪声、填充空洞等操作。 - 直方图处理:C++ 可以计算图像的直方图,并进行直方图均衡化、直方图匹配等操作,用于增强图像的对比度和亮度。 2. 举例: - 图像平滑:使用 C++ 中的高斯滤波器对图像进行平滑处理,可以去除图像中的噪声。 - 边缘检测:使用 C++ 中的 Canny 算法图像进行边缘检测,可以提取出图像中的边缘特征。 - 图像缩放:使用 C++ 中的插值算法(如双线性插值)对图像进行缩放操作,可以改变图像的尺寸。 - 颜色转换:使用 C++ 中的颜色空间转换函数,如 RGB 到灰度图像的转换,或 RGB 到 HSV 的转换。 - 目标检测:使用 C++ 中的模板匹配算法图像进行目标检测,可以找到图像中与给定模板相似的区域。 以上只是一些C++图像处理方向的基础知识和举例,实际上,C++图像处理方面还有更多的功能和应用,具体根据实际求和问题来选择相应的算法和方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值