[swift]openCVによる画素値の設定をしたい
swiftでopenCVを使用して画像処理の勉強をしています。
rgb_imageの位置が(300,300)までにある画素の値を赤=255,緑=0,青=0に設定し、
塗りつぶしたつもりなのですが縞模様のようになってしまいました。
原因がわかりません。
発生している問題・エラーメッセージ
該当のソースコード
+(UIImage *) getPixelColorFromUIImage:(UIImage *) image { cv::Mat rgb_image(image.size.height, image.size.width, CV_8UC3); UIImageToMat(image, rgb_image); for (int x=0; x<100; x++) { for (int y=0; y<100; y++) { rgb_image.at<cv::Vec3b>(y, x) = cv::Vec3b(0 ,0 ,255); } } return MatToUIImage(rgb_image); } @end
試したこと
○mat型の変数の画像サイズの変更したが結果は変わらず
○画素値へのデータアクセスのatメソッドではない方法で設定したが同じ結果が得られた。
・Matクラスのdataを直接操作する方法
○設定する画素値を赤=100,緑=100,青=100にした結果グレーで塗りつぶすことができた。
![
○forループのx座標を一つ飛ばしにした結果青色のような縞模様が現れた
(条件は上記に載っているソースと一緒である。つまりがその設定は赤=255,緑=0,青=0)
for (int x=0; x<100; x+=2) {
補足情報(FW/ツールのバージョンなど)
openCV(3.4.1)
xcode(9.3)
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/06/06 15:50