Linux下运用opencv的简单图像编程
一.编写一个打开图片进行特效显示的代码
(一) . 用普通方式编译程序
1.准备工作:
- 在opencv文件夹里创建工作文件夹以及一个cpp文件
cd opencv-3.4.16
mkdir mytest
cd mytest
touch test.cpp
vim test.cpp
test.cpp代码:
#include <opencv2/highgui.hpp>
#include <opencv2/opencv.hpp>
using namespace cv;
using namespace std;
int main(int argc, char** argv)
{
CvPoint center;
double scale = -3;
IplImage<span class="token operator">*</span> image <span class="token operator">=</span> <span class="token function">cvLoadImage</span><span class="token punctuation">(</span><span class="token string">"lena.jpg"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
argc <span class="token operator">==</span> <span class="token number">2</span><span class="token operator">?</span> <span class="token function">cvLoadImage</span><span class="token punctuation">(</span>argv<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token punctuation">)</span> <span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">;</span>
<span class="token function">cvShowImage</span><span class="token punctuation">(</span><span class="token string">"Image"</span><span class="token punctuation">,</span> image<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token operator">!</span>image<span class="token punctuation">)</span> <span class="token keyword">return</span> <span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">;</span> center <span class="token operator">=</span> <span class="token function">cvPoint</span><span class="token punctuation">(</span>image<span class="token operator">-></span>width <span class="token operator">/</span> <span class="token number">2</span><span class="token punctuation">,</span> image<span class="token operator">-></span>height <span class="token operator">/</span> <span class="token number">2</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">for</span> <span class="token punctuation">(</span><span class="token keyword">int</span> i <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span>i<span class="token operator"><</span>image<span class="token operator">-></span>height<span class="token punctuation">;</span>i<span class="token operator">++</span><span class="token punctuation">)</span>
<span class="token keyword">for</span> <span class="token punctuation">(</span><span class="token keyword">int</span> j <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span>j<span class="token operator"><</span>image<span class="token operator">-></span>width<span class="token punctuation">;</span>j<span class="token operator">++</span><span class="token punctuation">)</span> <span class="token punctuation">{<!-- --></span>
<span class="token keyword">double</span> dx <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token keyword">double</span><span class="token punctuation">)</span><span class="token punctuation">(</span>j <span class="token operator">-</span> center<span class="token punctuation">.</span>x<span class="token punctuation">)</span> <span class="token operator">/</span> center<span class="token punctuation">.</span>x<span class="token punctuation">;</span>
<span class="token keyword">double</span> dy <span class="token operator">=</span> <span class=&