图像处理代码举例(C++、MATLAB、OpenCV)
一、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列对应的元素 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)的更多相关文章
- Linux下c函数dlopen实现加载动态库so文件代码举例
dlopen()是一个强大的库函数.该函数将打开一个新库,并把它装入内存.该函数主要用来加载库中的符号,这些符号在编译的时候是不知道的.这种机制使得在系统中添加或者删除一个模块时,都不需要重新编译了. ...
- C++ Iterator迭代器介绍及Iterator迭代器用法代码举例
C++ Iterator迭代器介绍 迭代器可被用来访问一个容器类的所包函的全部元素,其行为像一个指针.举一个例子,你可用一个迭代器来实现对vector容器中所含元素的遍历.有这么几种迭代器如下: 迭代 ...
- jQuery概述,代码举例及最新版下载
jQuery是一个快速的,小巧的,具有强大功能的JavaScript库. 它的基本功能包括: 1)访问和操作DOM元素 2)控制页面样式(可以兼容各种浏览器) 3)对页面事件的处理 4)大量插件在页面 ...
- 相机标定 matlab opencv ROS三种方法标定步骤(1)
一 . 理解摄像机模型,网上有很多讲解的十分详细,在这里我只是记录我的整合出来的资料和我的部分理解 计算机视觉领域中常见的三个坐标系:图像坐标系,相机坐标系,世界坐标系,实际上就是要用矩阵来表 示各个 ...
- SSL握手通信详解及linux下c/c++ SSL Socket代码举例
SSL握手通信详解及linux下c/c++ SSL Socket代码举例 摘自:http://www.169it.com/article/3215130236.html 分享到:8 发布时 ...
- SSL握手通信详解及linux下c/c++ SSL Socket代码举例(另附SSL双向认证客户端代码)
SSL握手通信详解及linux下c/c++ SSL Socket代码举例(另附SSL双向认证客户端代码) 摘自: https://blog.csdn.net/sjin_1314/article/det ...
- 常用正则表达式最强汇总(含Python代码举例讲解+爬虫实战)
大家好,我是辰哥~ 本文带大家学习正则表达式,并通过python代码举例讲解常用的正则表达式 最后实战爬取小说网页:重点在于爬取的网页通过正则表达式进行解析. 正则表达式语法 Python的re模块( ...
- Delphi基本图像处理代码
//浮雕procedure Emboss(SrcBmp,DestBmp:TBitmap;AzimuthChange:integer);overload;var i, j, Gray, Azimuth ...
- [ZT]图像处理库的比较:OpenCV,FreeImage,CImg,CxImage
1.对OpenCV 的印象:功能十分的强大,而且支持目前先进的图像处理技术,体系十分完善,操作手册很详细,手册首先给大家补计算机视觉的知识,几乎涵盖了近10年内的主流算法: 然后将图像格式和矩阵运算, ...
随机推荐
- linux-秘钥生成
服务器sshd配置 #vim /etc/ssh/sshd_conf PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys # ...
- Linux/Windows下安装SonarCube
1. 下载合适的版本,尽量不要下载最新的版本,最新的版本要求Java 11+,如果没有安装最新版的Java的话,尽量用 SonarQube 7.0 以下的版本,SonarQube 7.0是可以用jdk ...
- ACM算法模板 · 一些常用的算法模板-模板合集(打比赛专用)
ACM算法模板 · 一些常用的算法模板-模板合集(打比赛专用)
- LG2662 牛场围栏 和 test20181107 数学题
P2662 牛场围栏 题目背景 小L通过泥萌的帮助,成功解决了二叉树的修改问题,并因此写了一篇论文, 成功报送了叉院(羡慕不?).勤奋又勤思的他在研究生时期成功转系,考入了北京大学光华管理学院!毕业后 ...
- HtmlAgilityPack解析html文档
一.概述 HtmlAgilityPack(以下简称HAP)是一个基于.Net的.第三方免费开源的微型类库,主要用于在服务器端解析html文档. HtmlAgilityPack为网页提供了标准的DOM ...
- Python文件的读写操作
Python文件的使用 要点:Python能够以文本和二进制两种形式处理文件. 1.文件的打开模式,如表1: 注意:使用open()函数打开文件,文件使用结束后耀使用close()方法关闭,释放文件 ...
- JanusGraph 创建索引步骤(composite index)踩坑总结
前言 JanusGraph是一个图数据库引擎,安装及入门可以参考 JanusGraph 图数据库安装小记.为了提高查询速度,在使用过程中一般要为某些属性创建索引.这篇随笔主要是记录创建索引过程中踩过的 ...
- zip unzip tar 压缩相关
unzip 解压时,需要直接覆盖以解压的文件 -o 则不再进行询问,直接覆盖原文件解压缩 示例 unzip -o file_name.zip
- 什么是粘包? socket 中造成粘包的原因是什么? 哪些情况会发生粘包现象?
只有TCP有粘包现象,UDP永远不会粘包! 粘包:在接收数据时,一次性多接收了其它请求发送来的数据(即多包接收).如,对方第一次发送hello,第二次发送world, 在接收时,应该收两次,一次是he ...
- Mybatis 入门 (二)
1. Mapper配置文件处理特殊字符 用 > 和 &It; 代替 > 和 < 2. 延迟加载 单表查询性能比多表关联查询要高得多,即先查询单表,如果需要关联多表时再进行查询 ...