一、C中用数组存图像信息,下标索引:

pbTag[y*newWidth+x]

见:https://www.cnblogs.com/wxl845235800/p/11149853.html
HRESULT Imagejoint(PBYTE pbSrc,int iWidth,int iHeight,double dbZoom,PBYTE pbTag)
        PBYTE    pbSrc=NULL,pbTag=NULL;//源图、目标图
PBYTE pbImage=NULL;//load图像后存在这
PDWORD pdwImage=NULL;//用于保存图像
        CString str = "src4.bmp";
LPCTSTR filename = (LPCTSTR)str;
      cImage.Load(filename);
            iWidth=cImage.GetWidth();
iHeight=cImage.GetHeight();
 //分配源图内存
pbSrc = (PBYTE)malloc(iWidth*iHeight);

二、MATLAB用img(m,n),图像下标从1开始。

Matlab的下标是可以多行多列同时引用的,而像C语言等一次只能引用一个。

A(2:3,3:-1:1)表示引用数组中的2~3行,3~1列对应的元素 
A(:,end)表示引用最后一列元素,“:”表示所有列或行,“end”表示最后一列或列,“end-n”表示倒数第n行或列 
A(1,end-1)表示引用第1行倒数第2个元素 
A([2 1 3 3],[1 1 2 2 1])表示引用按两个向量引用指定的元素,即A中的第2,1,3,3行和第1,1,2,2,1列对应的元素。

https://blog.csdn.net/sinat_26492471/article/details/52959511

ima=double(imread('lenna2.bmp'));

%原图

ima=rgb2gray(ima);

ima(:,:)=255;

见:https://www.cnblogs.com/wxl845235800/p/10898203.html

https://www.cnblogs.com/wxl845235800/p/7700887.html

三、OpenCV中:调用矩阵元素

(float)img.at<char>(m,n)

Mat img = imread("test3.png",0);

std::cout<<(float)img.at<uchar>(1,1)<< std::endl;

https://www.cnblogs.com/wxl845235800/p/9082025.html

Mat img = imread("test.png",0);//灰度图
    M=img.rows;//行数、图像高度
N=img.cols;//列数、图像宽度
cv::Mat F= (cv::Mat_<int>(64,4) <<
Mat out(2*M,N,CV_8UC1,Scalar(0));
   for(col=0;col<N;col++)
{
for(row=0;row<2*M;row++)
{
double tmp=(row-1)/M+1/(2*64);
int i=floor(tmp);
int phaseNum=floor((tmp-i)*64)+1;
if(i==0)
{
out.at<uchar>(row,col)=
(float)img.at<uchar>(1,col)*F.at<uchar>(phaseNum,1)+
(float)img.at<uchar>(1,col)*F.at<uchar>(phaseNum,2)+
(float)img.at<uchar>(2,col)*F.at<uchar>(phaseNum,3)+
(float)img.at<uchar>(3,col)*F.at<uchar>(phaseNum,4);
}

图像处理代码举例(C++、MATLAB、OpenCV)的更多相关文章

  1. Linux下c函数dlopen实现加载动态库so文件代码举例

    dlopen()是一个强大的库函数.该函数将打开一个新库,并把它装入内存.该函数主要用来加载库中的符号,这些符号在编译的时候是不知道的.这种机制使得在系统中添加或者删除一个模块时,都不需要重新编译了. ...

  2. C++ Iterator迭代器介绍及Iterator迭代器用法代码举例

    C++ Iterator迭代器介绍 迭代器可被用来访问一个容器类的所包函的全部元素,其行为像一个指针.举一个例子,你可用一个迭代器来实现对vector容器中所含元素的遍历.有这么几种迭代器如下: 迭代 ...

  3. jQuery概述,代码举例及最新版下载

    jQuery是一个快速的,小巧的,具有强大功能的JavaScript库. 它的基本功能包括: 1)访问和操作DOM元素 2)控制页面样式(可以兼容各种浏览器) 3)对页面事件的处理 4)大量插件在页面 ...

  4. 相机标定 matlab opencv ROS三种方法标定步骤(1)

    一 . 理解摄像机模型,网上有很多讲解的十分详细,在这里我只是记录我的整合出来的资料和我的部分理解 计算机视觉领域中常见的三个坐标系:图像坐标系,相机坐标系,世界坐标系,实际上就是要用矩阵来表 示各个 ...

  5. SSL握手通信详解及linux下c/c++ SSL Socket代码举例

    SSL握手通信详解及linux下c/c++ SSL Socket代码举例 摘自:http://www.169it.com/article/3215130236.html   分享到:8     发布时 ...

  6. SSL握手通信详解及linux下c/c++ SSL Socket代码举例(另附SSL双向认证客户端代码)

    SSL握手通信详解及linux下c/c++ SSL Socket代码举例(另附SSL双向认证客户端代码) 摘自: https://blog.csdn.net/sjin_1314/article/det ...

  7. 常用正则表达式最强汇总(含Python代码举例讲解+爬虫实战)

    大家好,我是辰哥~ 本文带大家学习正则表达式,并通过python代码举例讲解常用的正则表达式 最后实战爬取小说网页:重点在于爬取的网页通过正则表达式进行解析. 正则表达式语法 Python的re模块( ...

  8. Delphi基本图像处理代码

    //浮雕procedure Emboss(SrcBmp,DestBmp:TBitmap;AzimuthChange:integer);overload;var  i, j, Gray, Azimuth ...

  9. [ZT]图像处理库的比较:OpenCV,FreeImage,CImg,CxImage

    1.对OpenCV 的印象:功能十分的强大,而且支持目前先进的图像处理技术,体系十分完善,操作手册很详细,手册首先给大家补计算机视觉的知识,几乎涵盖了近10年内的主流算法: 然后将图像格式和矩阵运算, ...

随机推荐

  1. Linux/Windows下安装SonarCube

    1. 下载合适的版本,尽量不要下载最新的版本,最新的版本要求Java 11+,如果没有安装最新版的Java的话,尽量用 SonarQube 7.0 以下的版本,SonarQube 7.0是可以用jdk ...

  2. [Svelte 3] Render HTML directly into a component in Svelte 3

    Disclaimer: please use this feature carefully. <script> let stringToRender = "<h1>H ...

  3. Hive 模式设计

    Hive看上去很像关系型数据库.不过,Hive实现和使用的方式和传统的关系型数据库非常不同.Hive是反模式的. 本文将重点介绍Hive中哪些模式是用户应该使用的,儿哪些是应该避免的 一.按天划分的表 ...

  4. mysqli的方法测试小结

    <?php class MysqlController extends ControllerBase { public $config = array(); public $mysql = NU ...

  5. 99: AGC-018C 堆+思维

    $des$有 $X + Y + Z$ 个人,第 $i$ 个人有 $A_i$ 个金币,$B_i$ 个银币,$C_i$ 个铜币.选出 $X$ 个人获得其金币,选出 $Y$ 个人获得其银币,选出 $Z$ 个 ...

  6. redis系列(四):切换RDB备份到AOF备份

    1.准备环境 redis.conf服务端配置如下: daemonize yes port logfile /data//redis.log dir /data/ dbfilename dbmp.rdb ...

  7. 36、将RDD转换为DataFrame

    一.概述 为什么要将RDD转换为DataFrame? 因为这样的话,我们就可以直接针对HDFS等任何可以构建为RDD的数据,使用Spark SQL进行SQL查询了.这个功能是无比强大的. 想象一下,针 ...

  8. Educational Codeforces Round 68 (Rated for Div. 2)---B

    http://codeforces.com/contest/1194/problem/B /* */ # include <bits/stdc++.h> using namespace s ...

  9. ffmpeg视频压缩与分割

    ffmpeg -i .mov -vcodec libx264 -crf out.mp4 --分辨率不动进行压缩 ffmpeg -i .mp4 -c copy -c:v libx264 -vf scal ...

  10. go type别名和定义类型区别

    package main import ( "fmt" ) type person struct { age int name string } func (p person)te ...