SlideShare a Scribd company logo
C++ / OpenCV 入門 04 
熊本大学 胡(ITS)研究室 
D1 藤本賢志 
2014/09/24
今日の内容 
・フィルタリング 
・画像を重ねる 
・ROI 注目領域
フィルタリング 
 カーネルの作成(鮮鋭化) 
void sharpen2D(const cv::Mat &image, cv::Mat &result){ 
 cv::Mat kernel(3, 読3, むだけCV_32F, cv::Scalar(0)); 
アドレス指定 
 kernel.at<float>(1, 1) = 5.0; 
 kernel.at<float>(0, 1) = -1.0; 
 kernel.at<float>(2, 1) = -1.0; 
 kernel.at<float>(1, 0) = -1.0; 
 kernel.at<float>(1, 2) = -1.0; 
 cv::filter2D(image, result, image.depth(), kernel); 
} 
float型すべてゼロに初期化 
フィルタリング関数、中身の処理は調べてね 
0 -1 0 
-1 5 -1 
0 -1 0
画像を重ねる 
1.単純な加算 
   cv::add(image, image2, result); 
Matサイズは同じ 
2.下駄をはかせる 
   cv::add(image, cv::Scalar(50), result); 
3.重みづけして加算 
 cv::addWeighted(image, 0.7, image2, 0.1, 0, result); 
→ result = image * 0.7 + image2 * 0.1; 
    *こっちが簡単、四則演算もできるがMatサイズに注意 
4.スカラ倍して加算 
    cv::scaleAdd(image, 0.5, image2, result);
ROI 注目領域 
指定した領域にロゴを貼り付ける 
cv::Mat image = cv::imread("img.jpg", 0); 
cv::Mat result(image.size(), 0); 
cv::Mat logo = cv::imread("logo.jpg", 0); 
// define image ROI 
cv::Mat imageROI; 
imageROI = image(cv::Rect(150, 150, logo.cols, logo.rows)); 
// add logo to image 
開始位置サイズ 
cv::addWeighted(imageROI, 1.0, logo, 0.3, 0., imageROI); 
cv::imshow("ROI", imageROI); 
cv::waitKey(0); 
cv::imshow("image", image); //再表示でROIが反映、Resetする必要ない 
cv::waitKey(0);
参考文献 
OpenCV2 Computer Vision Application Prog 
ramming Cookbook 
http://amzn.to/1pjWFe3 
ソースコード 
https://code.google.com/p/opencv-cookbook 
/source/browse/trunk/

More Related Content

What's hot

What's hot (20)

Coqでsprintf
CoqでsprintfCoqでsprintf
Coqでsprintf
 
Coqでsprintf
CoqでsprintfCoqでsprintf
Coqでsprintf
 
Effective modern C++ 勉強会 #3 Item 12
Effective modern C++ 勉強会 #3 Item 12Effective modern C++ 勉強会 #3 Item 12
Effective modern C++ 勉強会 #3 Item 12
 
Emcjp item33,34
Emcjp item33,34Emcjp item33,34
Emcjp item33,34
 
llvm入門
llvm入門llvm入門
llvm入門
 
getstartedc#_1
getstartedc#_1getstartedc#_1
getstartedc#_1
 
モナドをつくろう
モナドをつくろうモナドをつくろう
モナドをつくろう
 
[第2版]Python機械学習プログラミング 第14章
[第2版]Python機械学習プログラミング 第14章[第2版]Python機械学習プログラミング 第14章
[第2版]Python機械学習プログラミング 第14章
 
kagami_comput2016_07
kagami_comput2016_07kagami_comput2016_07
kagami_comput2016_07
 
20010901
2001090120010901
20010901
 
More C++11
More C++11More C++11
More C++11
 
研究生のためのC++ no.7
研究生のためのC++ no.7研究生のためのC++ no.7
研究生のためのC++ no.7
 
[第2版]Python機械学習プログラミング 第16章
[第2版]Python機械学習プログラミング 第16章[第2版]Python機械学習プログラミング 第16章
[第2版]Python機械学習プログラミング 第16章
 
競技プログラミングにおけるコードの書き方とその利便性
競技プログラミングにおけるコードの書き方とその利便性競技プログラミングにおけるコードの書き方とその利便性
競技プログラミングにおけるコードの書き方とその利便性
 
[第2版]Python機械学習プログラミング 第8章
[第2版]Python機械学習プログラミング 第8章[第2版]Python機械学習プログラミング 第8章
[第2版]Python機械学習プログラミング 第8章
 
timeVaringMappedFixedValueについて
timeVaringMappedFixedValueについてtimeVaringMappedFixedValueについて
timeVaringMappedFixedValueについて
 
Rubyの御先祖CLUのお話(OSC 2011 Shimane LT 資料)
Rubyの御先祖CLUのお話(OSC 2011 Shimane LT 資料)Rubyの御先祖CLUのお話(OSC 2011 Shimane LT 資料)
Rubyの御先祖CLUのお話(OSC 2011 Shimane LT 資料)
 
Rubyの御先祖CLUのお話(原本)
Rubyの御先祖CLUのお話(原本)Rubyの御先祖CLUのお話(原本)
Rubyの御先祖CLUのお話(原本)
 
HTML5 Conference LT TensorFlow
HTML5 Conference LT TensorFlowHTML5 Conference LT TensorFlow
HTML5 Conference LT TensorFlow
 
Look into Project Valhalla from CLR viewpoint
Look into Project Valhalla from CLR viewpointLook into Project Valhalla from CLR viewpoint
Look into Project Valhalla from CLR viewpoint
 

Viewers also liked

Cyber bullying ppt
Cyber bullying pptCyber bullying ppt
Cyber bullying ppt
mads_dav1
 
Korean TV program
Korean TV programKorean TV program
Korean TV program
연화 조
 

Viewers also liked (20)

Mastering open cv kinectv1 marker based ar
Mastering open cv kinectv1 marker based arMastering open cv kinectv1 marker based ar
Mastering open cv kinectv1 marker based ar
 
第2回cv勉強会@九州 LSD-SLAM
第2回cv勉強会@九州   LSD-SLAM第2回cv勉強会@九州   LSD-SLAM
第2回cv勉強会@九州 LSD-SLAM
 
論文紹介:Ambient Sound Provides Supervision for Visual Learning(CV勉強会ECCV2016読み会)
論文紹介:Ambient Sound Provides Supervision for Visual Learning(CV勉強会ECCV2016読み会)論文紹介:Ambient Sound Provides Supervision for Visual Learning(CV勉強会ECCV2016読み会)
論文紹介:Ambient Sound Provides Supervision for Visual Learning(CV勉強会ECCV2016読み会)
 
論文紹介:The wavelet matrix
論文紹介:The wavelet matrix論文紹介:The wavelet matrix
論文紹介:The wavelet matrix
 
続・Kinect v2を通してMicrosoft技術を考える
続・Kinect v2を通してMicrosoft技術を考える続・Kinect v2を通してMicrosoft技術を考える
続・Kinect v2を通してMicrosoft技術を考える
 
20160724_cv_sfm_revisited
20160724_cv_sfm_revisited20160724_cv_sfm_revisited
20160724_cv_sfm_revisited
 
20161203 cv 3_d_recon_tracking_eventcamera
20161203 cv 3_d_recon_tracking_eventcamera20161203 cv 3_d_recon_tracking_eventcamera
20161203 cv 3_d_recon_tracking_eventcamera
 
それっぽく感じる機械学習
それっぽく感じる機械学習それっぽく感じる機械学習
それっぽく感じる機械学習
 
.NET Coreとツール類の今
.NET Coreとツール類の今.NET Coreとツール類の今
.NET Coreとツール類の今
 
関東コンピュータビジョン勉強会
関東コンピュータビジョン勉強会関東コンピュータビジョン勉強会
関東コンピュータビジョン勉強会
 
First ppt which i made in PU : President university student services
First ppt which i made in PU : President university student servicesFirst ppt which i made in PU : President university student services
First ppt which i made in PU : President university student services
 
El vol del falco
El vol del falcoEl vol del falco
El vol del falco
 
Cyber bullying ppt
Cyber bullying pptCyber bullying ppt
Cyber bullying ppt
 
Andrea
AndreaAndrea
Andrea
 
Adjectives
AdjectivesAdjectives
Adjectives
 
Adjectives
AdjectivesAdjectives
Adjectives
 
Action research plan joe payne
Action research plan   joe payneAction research plan   joe payne
Action research plan joe payne
 
Korean TV program
Korean TV programKorean TV program
Korean TV program
 
レゴ×Kinect実験指導書
レゴ×Kinect実験指導書レゴ×Kinect実験指導書
レゴ×Kinect実験指導書
 
Paying Attention - Crash Course on Creativity
Paying Attention - Crash Course on CreativityPaying Attention - Crash Course on Creativity
Paying Attention - Crash Course on Creativity
 

Similar to Cpp cv04

T69 c++cli ネイティブライブラリラッピング入門
T69 c++cli ネイティブライブラリラッピング入門T69 c++cli ネイティブライブラリラッピング入門
T69 c++cli ネイティブライブラリラッピング入門
伸男 伊藤
 
130710 02
130710 02130710 02
130710 02
openrtm
 
Wavelet matrix implementation
Wavelet matrix implementationWavelet matrix implementation
Wavelet matrix implementation
MITSUNARI Shigeo
 
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
Takeshi Yamamuro
 
C base design methodology with s dx and xilinx ml
C base design methodology with s dx and xilinx ml C base design methodology with s dx and xilinx ml
C base design methodology with s dx and xilinx ml
ssuser3a4b8c
 
Boost.Coroutine
Boost.CoroutineBoost.Coroutine
Boost.Coroutine
melpon
 
Rtm講習会 140626 02
Rtm講習会 140626 02Rtm講習会 140626 02
Rtm講習会 140626 02
openrtm
 
Nodejuku01 ohtsu
Nodejuku01 ohtsuNodejuku01 ohtsu
Nodejuku01 ohtsu
Nanha Park
 
CLRの基礎 - プログラミング .NET Framework 第3版 読書会
CLRの基礎 - プログラミング .NET Framework 第3版 読書会CLRの基礎 - プログラミング .NET Framework 第3版 読書会
CLRの基礎 - プログラミング .NET Framework 第3版 読書会
Yoshihisa Ozaki
 
D言語会議#1
D言語会議#1D言語会議#1
D言語会議#1
9rnsr
 

Similar to Cpp cv04 (20)

T69 c++cli ネイティブライブラリラッピング入門
T69 c++cli ネイティブライブラリラッピング入門T69 c++cli ネイティブライブラリラッピング入門
T69 c++cli ネイティブライブラリラッピング入門
 
Introduction to OpenCL (Japanese, OpenCLの基礎)
Introduction to OpenCL (Japanese, OpenCLの基礎)Introduction to OpenCL (Japanese, OpenCLの基礎)
Introduction to OpenCL (Japanese, OpenCLの基礎)
 
130710 02
130710 02130710 02
130710 02
 
Android上での3D(OpenGL)描画の基礎とNDKによる実践的高速化手法
Android上での3D(OpenGL)描画の基礎とNDKによる実践的高速化手法Android上での3D(OpenGL)描画の基礎とNDKによる実践的高速化手法
Android上での3D(OpenGL)描画の基礎とNDKによる実践的高速化手法
 
Prosym2012
Prosym2012Prosym2012
Prosym2012
 
STARC RTL設計スタイルガイドによるVerilog HDL並列記述の補強
STARC RTL設計スタイルガイドによるVerilog HDL並列記述の補強STARC RTL設計スタイルガイドによるVerilog HDL並列記述の補強
STARC RTL設計スタイルガイドによるVerilog HDL並列記述の補強
 
Wavelet matrix implementation
Wavelet matrix implementationWavelet matrix implementation
Wavelet matrix implementation
 
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
 
Slide
SlideSlide
Slide
 
C base design methodology with s dx and xilinx ml
C base design methodology with s dx and xilinx ml C base design methodology with s dx and xilinx ml
C base design methodology with s dx and xilinx ml
 
Boost.Coroutine
Boost.CoroutineBoost.Coroutine
Boost.Coroutine
 
Rtm講習会 140626 02
Rtm講習会 140626 02Rtm講習会 140626 02
Rtm講習会 140626 02
 
Nodejuku01 ohtsu
Nodejuku01 ohtsuNodejuku01 ohtsu
Nodejuku01 ohtsu
 
8 並列計算に向けた pcセッティング
8 並列計算に向けた pcセッティング8 並列計算に向けた pcセッティング
8 並列計算に向けた pcセッティング
 
PCL
PCLPCL
PCL
 
CLRの基礎 - プログラミング .NET Framework 第3版 読書会
CLRの基礎 - プログラミング .NET Framework 第3版 読書会CLRの基礎 - プログラミング .NET Framework 第3版 読書会
CLRの基礎 - プログラミング .NET Framework 第3版 読書会
 
D言語会議#1
D言語会議#1D言語会議#1
D言語会議#1
 
文献紹介:An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale
文献紹介:An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale文献紹介:An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale
文献紹介:An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale
 
Intro to SVE 富岳のA64FXを触ってみた
Intro to SVE 富岳のA64FXを触ってみたIntro to SVE 富岳のA64FXを触ってみた
Intro to SVE 富岳のA64FXを触ってみた
 
ディープラーニングフレームワーク とChainerの実装
ディープラーニングフレームワーク とChainerの実装ディープラーニングフレームワーク とChainerの実装
ディープラーニングフレームワーク とChainerの実装
 

More from Satoshi Fujimoto

More from Satoshi Fujimoto (20)

くまあずLT
くまあずLTくまあずLT
くまあずLT
 
ROHM OPEN HACK CHALLENGE 2019 加加速度による路面評価プログラムの開発
ROHM OPEN HACK CHALLENGE 2019 加加速度による路面評価プログラムの開発ROHM OPEN HACK CHALLENGE 2019 加加速度による路面評価プログラムの開発
ROHM OPEN HACK CHALLENGE 2019 加加速度による路面評価プログラムの開発
 
HoloLens2完全に理解した
HoloLens2完全に理解したHoloLens2完全に理解した
HoloLens2完全に理解した
 
次世代型電動車椅子WHILLの紹介
次世代型電動車椅子WHILLの紹介次世代型電動車椅子WHILLの紹介
次世代型電動車椅子WHILLの紹介
 
20180829 ガチラボ vol.9
20180829 ガチラボ vol.920180829 ガチラボ vol.9
20180829 ガチラボ vol.9
 
20180822 ガチラボ vol.8
20180822 ガチラボ vol.820180822 ガチラボ vol.8
20180822 ガチラボ vol.8
 
20180801 ガチラボ vol.7
20180801 ガチラボ vol.720180801 ガチラボ vol.7
20180801 ガチラボ vol.7
 
Azureを活用したHoloLensアプリ開発
Azureを活用したHoloLensアプリ開発Azureを活用したHoloLensアプリ開発
Azureを活用したHoloLensアプリ開発
 
MTuberツール作った2
MTuberツール作った2MTuberツール作った2
MTuberツール作った2
 
ロボアプリ名:秘密のPepperちゃん
ロボアプリ名:秘密のPepperちゃんロボアプリ名:秘密のPepperちゃん
ロボアプリ名:秘密のPepperちゃん
 
秘密のPepperちゃん
秘密のPepperちゃん秘密のPepperちゃん
秘密のPepperちゃん
 
熊本 HoloLens Meetup vol.0 「HoloLensアプリ開発コンテストビジネス部門で特別賞もらってきた」
熊本 HoloLens Meetup vol.0 「HoloLensアプリ開発コンテストビジネス部門で特別賞もらってきた」熊本 HoloLens Meetup vol.0 「HoloLensアプリ開発コンテストビジネス部門で特別賞もらってきた」
熊本 HoloLens Meetup vol.0 「HoloLensアプリ開発コンテストビジネス部門で特別賞もらってきた」
 
熊本 HoloLens Meetup vol.0 前説
熊本 HoloLens Meetup vol.0 前説熊本 HoloLens Meetup vol.0 前説
熊本 HoloLens Meetup vol.0 前説
 
熊本 HoloLens Meetup vol.0.1 前哨戦 「MTuberツール作った」
熊本 HoloLens Meetup vol.0.1 前哨戦 「MTuberツール作った」熊本 HoloLens Meetup vol.0.1 前哨戦 「MTuberツール作った」
熊本 HoloLens Meetup vol.0.1 前哨戦 「MTuberツール作った」
 
Open3DでSLAM入門 PyCon Kyushu 2018
Open3DでSLAM入門 PyCon Kyushu 2018Open3DでSLAM入門 PyCon Kyushu 2018
Open3DでSLAM入門 PyCon Kyushu 2018
 
20180613 ガチラボ vol.4
20180613 ガチラボ vol.420180613 ガチラボ vol.4
20180613 ガチラボ vol.4
 
20180606 ガチラボ vol.3
20180606 ガチラボ vol.320180606 ガチラボ vol.3
20180606 ガチラボ vol.3
 
20180516 ガチラボ vol.2
20180516 ガチラボ vol.220180516 ガチラボ vol.2
20180516 ガチラボ vol.2
 
札幌 HoloLens Meetup vol.1
札幌 HoloLens Meetup vol.1札幌 HoloLens Meetup vol.1
札幌 HoloLens Meetup vol.1
 
M5Stack やーる
M5Stack やーるM5Stack やーる
M5Stack やーる
 

Recently uploaded

2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
ssuserbefd24
 

Recently uploaded (10)

論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
 
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
 
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
 
20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdf20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdf
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
 
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
 

Cpp cv04

  • 1. C++ / OpenCV 入門 04 熊本大学 胡(ITS)研究室 D1 藤本賢志 2014/09/24
  • 3. フィルタリング  カーネルの作成(鮮鋭化) void sharpen2D(const cv::Mat &image, cv::Mat &result){  cv::Mat kernel(3, 読3, むだけCV_32F, cv::Scalar(0)); アドレス指定  kernel.at<float>(1, 1) = 5.0;  kernel.at<float>(0, 1) = -1.0;  kernel.at<float>(2, 1) = -1.0;  kernel.at<float>(1, 0) = -1.0;  kernel.at<float>(1, 2) = -1.0;  cv::filter2D(image, result, image.depth(), kernel); } float型すべてゼロに初期化 フィルタリング関数、中身の処理は調べてね 0 -1 0 -1 5 -1 0 -1 0
  • 4. 画像を重ねる 1.単純な加算    cv::add(image, image2, result); Matサイズは同じ 2.下駄をはかせる    cv::add(image, cv::Scalar(50), result); 3.重みづけして加算  cv::addWeighted(image, 0.7, image2, 0.1, 0, result); → result = image * 0.7 + image2 * 0.1;     *こっちが簡単、四則演算もできるがMatサイズに注意 4.スカラ倍して加算     cv::scaleAdd(image, 0.5, image2, result);
  • 5. ROI 注目領域 指定した領域にロゴを貼り付ける cv::Mat image = cv::imread("img.jpg", 0); cv::Mat result(image.size(), 0); cv::Mat logo = cv::imread("logo.jpg", 0); // define image ROI cv::Mat imageROI; imageROI = image(cv::Rect(150, 150, logo.cols, logo.rows)); // add logo to image 開始位置サイズ cv::addWeighted(imageROI, 1.0, logo, 0.3, 0., imageROI); cv::imshow("ROI", imageROI); cv::waitKey(0); cv::imshow("image", image); //再表示でROIが反映、Resetする必要ない cv::waitKey(0);
  • 6. 参考文献 OpenCV2 Computer Vision Application Prog ramming Cookbook http://amzn.to/1pjWFe3 ソースコード https://code.google.com/p/opencv-cookbook /source/browse/trunk/