cvGet2D和cvGetReal2D

17 篇文章 0 订阅

前者是获得彩色图像的像素值

后者是获得单通道(灰度图)的像素值

如果图像是彩色图采用cvGet2D

如果图像是灰度图像采用cvGetReal2D

但是如果彩色图像,则不能采用cvGetReal2D

但是灰度图像可以使用cvGet2D

差别比较细微

尤其是其进行遍历像素获得像素值时,一定要注意

for(int i=0;i<img.width;i++)

{

for(int j=0;j<img.height;j++)

{

cvGetReal2D(j,i);

}

}

注意其顺序

否则就会提示内存溢出的

易语言并没有内置的图像处理库,但是可以使用第三方库来进行图像处理。以下是一个使用易语言调用C++编写的图像处理库OpenCV来修改图片中指定位置的数字的示例代码: ```vb ' 导入OpenCV库 Declare Function cvLoadImage Lib "opencv_core2413.dll" (ByVal filename As String, ByVal flags As Integer) As Integer Declare Function cvGet2D Lib "opencv_core2413.dll" (ByVal arr As Integer, ByVal row As Integer, ByVal col As Integer) As Double Declare Sub cvSet2D Lib "opencv_core2413.dll" (ByVal arr As Integer, ByVal row As Integer, ByVal col As Integer, ByVal value As Double) Declare Sub cvSaveImage Lib "opencv_core2413.dll" (ByVal filename As String, ByVal arr As Integer) Declare Sub cvReleaseImage Lib "opencv_core2413.dll" (ByRef arr As Integer) ' 加载图片 Dim img As Integer img = cvLoadImage("example.png", 1) ' 获取要修改的数字的位置 Dim x As Integer Dim y As Integer x = 100 y = 100 ' 获取指定位置的像素值 Dim pixel As Double pixel = cvGet2D(img, y, x) ' 修改像素值 pixel = 5 ' 设置修改后的像素值 cvSet2D(img, y, x, pixel) ' 保存修改后的图片 cvSaveImage("modified.png", img) ' 释放图片内存 cvReleaseImage(img) ``` 在这个示例中,我们首先导入了OpenCV库,并使用“cvLoadImage”函数加载了一个名为“example.png”的图片。然后,我们获取要修改的数字的位置,并使用“cvGet2D”函数获取该位置的像素值。接着,我们将像素值修改为“5”,并使用“cvSet2D”函数将修改后的像素值设置回图片中。最后,我们使用“cvSaveImage”函数将修改后的图片保存为“modified.png”,并使用“cvReleaseImage”函数释放了图片的内存。 需要注意的是,这个示例使用了C++编写的OpenCV库,需要将库文件放置在易语言的相应目录下,并使用“Declare”语句来声明函数。同时,由于OpenCV库是C++编写的,因此在易语言中需要注意传递参数的类型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员小白学开发

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值